From 9f4f5937112655a9881d3281da8e72035bc8b180 Mon Sep 17 00:00:00 2001 From: David Bennett Date: Sat, 27 Apr 2013 11:22:03 -0400 Subject: feat($http): add support for aborting via timeout promises If the timeout argument is a promise, abort the request when it is resolved. Implemented by adding support to $httpBackend service and $httpBackend mock service. This api can also be used to explicitly abort requests while keeping the communication between the deffered and promise unidirectional. Closes #1159 --- src/ng/http.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/ng/http.js') diff --git a/src/ng/http.js b/src/ng/http.js index 708a0650..fbdc89a5 100644 --- a/src/ng/http.js +++ b/src/ng/http.js @@ -548,7 +548,8 @@ function $HttpProvider() { * GET request, otherwise if a cache instance built with * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for * caching. - * - **timeout** – `{number}` – timeout in milliseconds. + * - **timeout** – `{number|Promise}` – timeout in milliseconds, or {@link ng.$q promise} + * that should abort the request when resolved. * - **withCredentials** - `{boolean}` - whether to to set the `withCredentials` flag on the * XHR object. See {@link https://developer.mozilla.org/en/http_access_control#section_5 * requests with credentials} for more information. @@ -927,7 +928,7 @@ function $HttpProvider() { } resolvePromise(response, status, headersString); - $rootScope.$apply(); + if (!$rootScope.$$phase) $rootScope.$apply(); } -- cgit v1.2.3