我在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');
})
}
它应该等待promise中的所有函数调用完成,然后才重定向到/home
。但是,它似乎执行所有三个(两个分配和对save()
的调用)并立即重定向。告诉它等待save()
功能完成的神奇方法是什么?
答案 0 :(得分:1)
如下链接你的承诺:
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);
});
}