Router.navigation 在 promise 中不起作用
Router.navigation is not working inside the promise
google 登录完成后,我厌倦了从登录页面导航到仪表板。将令牌存储在 localStorage 后,promise 内的导航无法正常工作。
来自 LoginService 一个 googlelogin() return 验证和存储后的承诺。但是在收到 returned 承诺的 LoginComponent 中,router.navigation 不工作。
登录组件
loginwithgoogle(){
this.loginservice.googlelogin().then(()=>{
console.log("login");
this.route.navigate(["../Home"],{relativeTo:this.activatedroute});
});
}
登录服务
googlelogin(){
return new Promise(()=>{
var provider = new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithPopup(provider).then(function(result) {
var idToken = result.credential.idToken;
localStorage.setItem('token',idToken);
})
})
}
您缺少来自承诺的 "success" 回调调用
return new Promise((successCallback)=>{
.....yourcode
successCallback(someReturnValuePassedToThenCallback);
}
这就是为什么我更喜欢 observables 的原因。
无需使用 Promise 构造函数。只需传递 firebase 返回的承诺:
googlelogin() {
var provider = new firebase.auth.GoogleAuthProvider();
return firebase.auth().signInWithPopup(provider).then(/* process response */);
}
google 登录完成后,我厌倦了从登录页面导航到仪表板。将令牌存储在 localStorage 后,promise 内的导航无法正常工作。
来自 LoginService 一个 googlelogin() return 验证和存储后的承诺。但是在收到 returned 承诺的 LoginComponent 中,router.navigation 不工作。
登录组件
loginwithgoogle(){
this.loginservice.googlelogin().then(()=>{
console.log("login");
this.route.navigate(["../Home"],{relativeTo:this.activatedroute});
});
}
登录服务
googlelogin(){
return new Promise(()=>{
var provider = new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithPopup(provider).then(function(result) {
var idToken = result.credential.idToken;
localStorage.setItem('token',idToken);
})
})
}
您缺少来自承诺的 "success" 回调调用
return new Promise((successCallback)=>{
.....yourcode
successCallback(someReturnValuePassedToThenCallback);
}
这就是为什么我更喜欢 observables 的原因。
无需使用 Promise 构造函数。只需传递 firebase 返回的承诺:
googlelogin() {
var provider = new firebase.auth.GoogleAuthProvider();
return firebase.auth().signInWithPopup(provider).then(/* process response */);
}