我有一個認證服務來保存令牌,並且保存令牌的結果是承諾。我希望只有在承諾解決後才能將該值返回給其他函數。只有在承諾在angular2/ionic2中解決時才執行觀察
這是我authservice節省了令牌:
login(user: UserModel): Observable<any> {
return this._http.postnoAuth(this.loginurl + "mobile-login", body)
.map((response: Response) => {
let token = response.json() && response.json().access_token;
if (token){
this._storage.set('currentUser', JSON.stringify({token: token}))
.then(res=>{
return true; //return true after the promise is resolved
});
}
else{
return false;
}
})
//.catch(this.handleError);
}
然後我訂閱上面:
this._authservice.login(this.user).subscribe(respose => {
if(response){ //expecting true here
console.log("true");
}
else{
console.log("false");
}
loader.dismiss();
this.submitted = false;
},
error=> {
this.submitted = false;
}
);
以上代碼始終記錄錯誤,即使存儲的值已設置,什麼可能是錯誤的?