我如何延迟执行一个函数,直到我的所有问题$resources
都解决了?我的目标是能够解析log
数组,$resources
然后将一个成功通知推送到 UI,而不是每次成功推送一个通知。
我的代码基于这个问题angular-accessing data of multiple http calls-how to resolve the promises。我意识到这$scope.promises
是空的,因为item.$save()
没有返回任何东西,但我希望你能看到我正在尝试将未解决的承诺推送到promises
数组。
$scope.save = function () {
$scope.promises = [];
$scope.log = [];
angular.forEach($scope.menuItems, function(item) {
$scope.promises.push(item.$save(function(menu){
debugger; // execution gets here 2nd
console.debug("success");
$scope.log.push(msg: 'success');
}));
}, this);
$q.all($scope.promises).then(function() {
debugger; // execution gets here 1st
console.debug("all promises resolved");
});
};