我在我的angular2應用程序中使用firebase進行身份驗證,並遇到回調問題。這是我的代碼段,以確定用戶是否已登錄。如果用戶已登錄否則爲false如何在執行回調時處理訂單?
verifyLogin(url: string): boolean {
var myUser = null;
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
myUser = user;
console.log("sdfsdfsd");
console.log(myUser);
} else {
// No user is signed in.
}
});
console.log("check");
console.log(myUser);
if(myUser){
return true;
}
console.log(myUser);
this.router.navigate(['/admin/signin']);
return false;
}
這verifyLogin函數將返回true。但問題是在執行回調之前包含if條件的底部。我也不能在回調中返回。如何解決這個問題?
記住,回調是異步。如果你打算使用回調的結果,那麼你的方法「verifyLogin」是異步的。使用@samAlvin答案,使其返回一個Promise。 – Lostfields