Здравствуйте у меня есть простой LoginService, который выглядит так: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()' является асинхронной функцией, что означает, что она не блокирует остальную часть кода до его завершения. Вы можете решить эту проблему, используя ** обещания **. Проверьте службу [$ q] (https://docs.angularjs.org/api/ng/service/$q). – byxor