你好,我有简单的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