你好,我有簡單的login服務看起來像:angularjs,等待認定結果之前,轉到下一個控制器
this.notifyAuthorization = function() {
console.log('notifyAuthorization()');
$http({
url: 'app/?cmd=authorization/',
}).then(function (response) { console.log('LoginStatusResult: '); console.log(response.data);
var data = response.data;
if(data.hash !== undefined) {
$rootScope.loginStatus= true;
hash = data.hash;
}
});
};
這裏是呼籲服務
app.run(function($rootScope, $location, LoginService) {
LoginService.notifyAuthorization();
console.log('notifyAuthorization Finished');
});
看到LoginStatusResult
我看到之前notifyAuthorization Finished
和其他控制器初始化,應該知道LoginStatus所以如何解決這個問題?還是有更好的做法? 感謝
這是因爲'notifyAuthorization()'是一個異步函數,這意味着它不會阻塞代碼的其餘部分,直到它完成。你可以使用** promises **來解決這個問題。查看[$ q服務](https://docs.angularjs.org/api/ng/service/$q)。 – byxor