等待承诺中的功能完成
Wait for functions within a promise to finish
我在 Angular.js 控制器中有以下功能:
vm.some_action = function() {
var promise = IDService.getUserInfo().then(function(user) {
vm.user.name = user.name;
vm.box.color = 'red';
vm.save()
}, function(errorResponse) {
Toast.error("Failed:", errorResponse);
})
$q.resolve(promise).then(function() {
$location.path('/home');
})
}
它应该等待承诺中的所有函数调用完成,然后才重定向到 /home
。但是,它似乎执行了所有三个(两个分配和对 save()
的调用)并立即重定向。告诉它等待 save()
函数也完成的神奇方法是什么?
像下面这样串起你的承诺:
vm.some_action = function() {
IDService.getUserInfo().then(function(user) {
vm.user.name = user.name;
vm.box.color = 'red';
return vm.save()
}).then(function() {
$location.path('/home');
}, function(errorResponse) {
Toast.error("Failed:", errorResponse);
});
}
我在 Angular.js 控制器中有以下功能:
vm.some_action = function() {
var promise = IDService.getUserInfo().then(function(user) {
vm.user.name = user.name;
vm.box.color = 'red';
vm.save()
}, function(errorResponse) {
Toast.error("Failed:", errorResponse);
})
$q.resolve(promise).then(function() {
$location.path('/home');
})
}
它应该等待承诺中的所有函数调用完成,然后才重定向到 /home
。但是,它似乎执行了所有三个(两个分配和对 save()
的调用)并立即重定向。告诉它等待 save()
函数也完成的神奇方法是什么?
像下面这样串起你的承诺:
vm.some_action = function() {
IDService.getUserInfo().then(function(user) {
vm.user.name = user.name;
vm.box.color = 'red';
return vm.save()
}).then(function() {
$location.path('/home');
}, function(errorResponse) {
Toast.error("Failed:", errorResponse);
});
}