Skip to content Skip to sidebar Skip to footer

Aborting Ngresource Using A Promise Object

I've recently learned that ngResource request can be aborted either by specifying a timeout in ms or passing a deferred object. The second solution does not seem to work for me, an

Solution 1:

It looks like it's an open issue with Angular 1.3: github.com/angular/angular.js/issues/9332 You're jsfiddle works if you drop back to 1.2.28.

Solution 2:

Try using $timeout, instead of setTimeout, since that will take care of making sure your resolve is captured by angular $digest cycle.

myApp.controller('MyCtrl', function($scope, $q, $log, $timeout, myResource) {
    var aborter = $q.defer();
    $timeout(function() {
       $log.info('Aborting...');
       aborter.resolve();
    }, 10);
    myResource.getResource(aborter).query().$promise.then(function(data) {
        $scope.data = data;
    });
});

Solution 3:

try to change this line of ngResource source code:

httpConfig[key] = copy(value);

in

httpConfig[key] = key !== 'timeout' ? copy(value) : value;

the problem is the copied promise

Post a Comment for "Aborting Ngresource Using A Promise Object"