我想通过几个步骤执行代码。有可能吗?
首先,我要解决所有这些承诺
$scope.recentReported = [];
$scope.getRecentReported = function () {
var dateToday = new Date();
for (i = 0; i < $scope.recentDateLength; i++) {
var dateThen = moment(dateToday).add(-i, 'days');
RestRequestsSrvc.getRevenue(dateThen)
.then(
function (response) {
if (response) {
$scope.recentReported.push(response.date);
}
}
);
}
};
当承诺得到解决后,我想根据$scope.recentUnreported
计算$scope.recentReported
。它将是一个包含不在$scope.recentReported
。
一旦完成,我想为$scope.recentUnreported
答案 0 :(得分:1)
可能是以下情况?代码未经测试。
的JavaScript
$scope.recentReported = [];
$scope.getRecentReported = function () {
var dateToday = new Date();
var promises = [];
for (i = 0; i < $scope.recentDateLength; i++) {
var dateThen = moment(dateToday).add(-i, 'days');
promises.push(RestRequestsSrvc.getRevenue(dateThen));
}
$q.all(promises).then(function(response){
for(var i = 0; i < response.length; i++){
$scope.recentReported.push(response[i].date);
}
$scope.recentUnreported = $scope.getUnreported(); // Do what you need to do.
});
};
HTML
<div my-directive ng-repeat="unreported in recentUnreported"></div>
答案 1 :(得分:0)
您可以等待使用Promise.all
解决所有承诺然后,您将获得一个承诺,一旦解决,将具有一系列值,这是您可能正在寻找的。 p>
答案 2 :(得分:0)
你可以使用$ q.all(promises)see here这会给你一个承诺,一旦所有的承诺得到解决,它就会得到解决。
希望有所帮助。