Sembra abbastanza chiaro come impostare un metodo globale per interrompere le richieste HTTP. Qualcosa sulla falsariga di
$scope.canceller = $q.defer();
var API = $resource('http:/foo.com', {}, {get: {
method:'GET',
timeout:$scope.canceller.promise
}});
$scope.abortRequests = function() {
$scope.canceller.resolve();
}
Tuttavia, voglio essere in grado di annullare le richieste solo specifici. Potrei definire una risorsa separata per le richieste che devo essere in grado di abortire, ma è piuttosto brutto. C'è un modo per passare un parametro o qualcosa quando chiamo la risorsa $ che potrebbe consentire il timeout di essere condizionale? Forse sulla falsariga di:
var API = $resource('http:/foo.com', {}, {get: {
method:'GET',
timeout:function() { if (FOO) { return $scope.canceller.promise; }}
}});
Ma come accedere a FOO?
Grazie per qualsiasi intuizione!
non riuscivo a trovare un modo di fare questo con il brodo angolare, così ho applicato la patch da questa richiesta di pull: https://github.com/angular/angular.js/pull/5613 - Sembra che funzioni bene. Ora, utilizzando l'esempio di codice precedente, posso semplicemente chiamare l'API . $ Abort(); per annullare la richiesta. –