Aborting ngResource using a promise object

前端 未结 3 991
再見小時候
再見小時候 2021-01-19 08:16

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

相关标签:
3条回答
  • 2021-01-19 08:36

    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;
        });
    });
    
    0 讨论(0)
  • 2021-01-19 08:40

    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

    0 讨论(0)
  • 2021-01-19 08:42

    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.

    0 讨论(0)
提交回复
热议问题