AngularJS$q.allupdate/notify为什么不叫?
AngularJS $q.all update/notify not called why?
所以我有一个使用 $q.all 来批处理 $resource 调用的简单示例,我想知道的是为什么我的更新处理程序从未被调用过?
我还以为它会在每个 promise 成功完成后被调用?
只调用结果处理程序。我做错了什么?
这是代码片段:
var promises = [];
angular.forEach($scope.mappedData, function(item) {
var resource = new Resource(item);
promises.push(resource.$save());
});
$q.all(promises).then(
function(result) {
console.log('result', result);
},
function(error) {
console.log('error', error);
},
function(notify) {
console.log('notify', notify);
}
);
$q.all 创建一个新的单一承诺,一旦所有先前的承诺完成,就会继续。如果您想单独做每一个,则必须单独引用它们。
我遇到了同样的问题,我得到了这个解决方案。我已尝试为您的案例安排代码。
var results = [], errors = [], d = $q.defer()
angular.forEach($scope.mappedData, function(item) {
var resource = new Resource(item);
resource.$save().promise
.then(function (result) {
results.push(result)
if(results.length == $scope.mappedData.length)
d.resolve(results)
}, function (err) {
errors.push(err)
results.push(null) // Very important =P
}, function (notf) {
d.notify(notf)
})
})
d.promise.then(function (results) {
console.log(results)
}, function (err) {
console.error(err)
}, function (notf) {
console.info(notf)
})
如果有帮助请告诉我 ;)
所以我有一个使用 $q.all 来批处理 $resource 调用的简单示例,我想知道的是为什么我的更新处理程序从未被调用过?
我还以为它会在每个 promise 成功完成后被调用?
只调用结果处理程序。我做错了什么?
这是代码片段:
var promises = [];
angular.forEach($scope.mappedData, function(item) {
var resource = new Resource(item);
promises.push(resource.$save());
});
$q.all(promises).then(
function(result) {
console.log('result', result);
},
function(error) {
console.log('error', error);
},
function(notify) {
console.log('notify', notify);
}
);
$q.all 创建一个新的单一承诺,一旦所有先前的承诺完成,就会继续。如果您想单独做每一个,则必须单独引用它们。
我遇到了同样的问题,我得到了这个解决方案。我已尝试为您的案例安排代码。
var results = [], errors = [], d = $q.defer()
angular.forEach($scope.mappedData, function(item) {
var resource = new Resource(item);
resource.$save().promise
.then(function (result) {
results.push(result)
if(results.length == $scope.mappedData.length)
d.resolve(results)
}, function (err) {
errors.push(err)
results.push(null) // Very important =P
}, function (notf) {
d.notify(notf)
})
})
d.promise.then(function (results) {
console.log(results)
}, function (err) {
console.error(err)
}, function (notf) {
console.info(notf)
})
如果有帮助请告诉我 ;)