更新私のapiをres.status(401)の代わりにres.status(200)に修正すると、 。 私は401を返すので、未処理のエラーを推測していますが、私の.mapに.catchを追加するとbooleanエラーが発生した場合、どのようにして401を捕捉して使用できますか?未処理の約束エラーが発生するが、catchを追加するとbooleanが代入されない
私は認証ガードを作成しようとしています。私の方法は、サーバー側でいくつかの作業を行い、いくつかのユーザー情報と状態が真であるjson本体を返すAPIを要求することです。
私のコードでは
canActivate() {
return this.http.get(`http://localhost:3000/api/user/status`, options)
// return this.http.get(`/api/user/status`, options)
.map(res => {
if(!res){
this.router.navigate(['/login']);
return false;
}
let user: any = res.json();
return true;
})
}
正しいトークンでコードを実行すると、ページが認証されます。私がトークンを修正した場合、私のPOSTMANテストはstatus: false
を返すが、私のウェブサイトを使用するとエラーが発生し、処理できないエラーが発生する。
は、だから私はキャッチに
.catch(e => {
this.router.navigate(['/login']);
return false;
})
を追加しようが、私はタイプの引数」というコンパイルエラーを取得 『(E:任意の)=>ブール』 ERR(」タイプのパラメータに割り当て可能ではありません。任意の、Observable)=> ObservableInput '型' boolean 'は' ObservableInput '型に割り当てられません。) "
アドバイスはありますか?