を終了するのを待って、私は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
にリダイレクトするためにそれを待つ必要があります。しかし、それは3つすべて(2つの割り当てとsave()
への呼び出し)を実行し、直ちにリダイレクトするようです。 save()
の機能が終了するのを待つように指示する魔法の方法は何ですか?以下のような
'vm.save()'非同期のですか?それは約束を返しますか? –
はい、非同期です(愚かなQ:JS非同期のすべての関数ではありませんか?)何も返されません。 – mart1n
愚かな質問はありません:)すべてのJS関数が非同期です。 –