AngularJS: $q wait for all even when 1 rejected

后端 未结 8 1747
佛祖请我去吃肉
佛祖请我去吃肉 2021-02-01 16:23

I\'ve been trying to wait for a couple of promises with Angular\'s $q but there seems to be no option to \'wait for all even when a promis is rejected\'. I\'ve created an exampl

8条回答
  •  情书的邮戳
    2021-02-01 16:57

    A simpler approach to solving this problem.

    $provide.decorator('$q', ['$delegate', function ($delegate) {
        var $q = $delegate;
    
        $q.allSettled = $q.allSettled || function (promises) {
            var toSettle = [];
    
            if (angular.isArray(promises)) {
                angular.forEach(promises, function (promise, key) {
                    var dfd = $q.defer();
                    promise.then(dfd.resolve, dfd.resolve);
                    toSettle.push(dfd.promise);
                });
            }
    
            return $q.all(toSettle);
        };
    
        return $q;
    }]);
    

提交回复
热议问题