如何从多个承诺返回承诺 [英] How return promise from multiple promises
本文介绍了如何从多个承诺返回承诺的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我总是在控制台看到:
- teamsUpdated2
- addUserToProjects
- 从项目中删除用户
但应该按不同的顺序
var result = teamService.addOrDeleteUser(userId, newTeams, deleteTeams);
result.then(function () {
console.log("teamsUpdated2");
});
具有多个承诺的函数:
var _addOrDeleteUser = function (userId, addToProjects, removeFromProjects) {
var deferred = $q.defer();
var promises = [];
promises.push(projectResource.addUserToProjects({ userId: userId }, addToProjects, function (result) {
console.log("addUserToProjects");
deferred.resolve();
return result;
}));
promises.push(projectResource.deleteUserFromProjects({ userId: userId }, removeFromProjects, function (result) {
console.log("deleteUserFromProjects");
deferred.resolve();
return result;
}));
return $q.all(promises);
}
推荐答案
你可以使用承诺链 -
You can use promise chaining for that -
travelService
.getDeparture( user ) // Request #1
.then( function( departure ){
$scope.departure = departure; // Response Handler #1
return travelService.getFlight( departure.flightID ); // Request #2
})
.then( function( flight ){
$scope.flight = flight; // Response Handler #2
return weatherService.getForecast( $scope.departure.date ); // Request #3
})
.then( function( weather ){
$scope.weather = weather; // Response Handler #3
});
有关更多参考,请参阅this
这篇关于如何从多个承诺返回承诺的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文