![](/img/trans.png)
[英]Angular AuthGuard canActivate with observable from promise not working
[英]Re-throwing error from Observable.catch in AuthGuard canActivate
我在AuthGuard的canActivate
方法中有以下代碼:
return this.http.get(url) .map(res => { console.log(res.json()); return true; }) .catch(error => { return Observable.throw(error); // return Observable.of(false); });
當我取消對Observable.of(false)
行的注釋時,一切都很好。 但是,我不僅要返回包裝在Observable中的false,還希望重新引發該錯誤,以便我的全局自定義ErrorHandler
可以捕獲該錯誤並顯示一條用戶友好的消息。
你可以這樣做:
Observable.throw('error')
.catch(error => {
return Observable.throw(error).startWith(false);
})
.subscribe(
value => console.log('Next', value),
err => console.log('Error', err)
);
從catch()
返回的Observable只是一個常規的Observable,它也可能引發錯誤。
請注意,您必須在subscribe()
設置錯誤回調,否則錯誤將被重新拋出。
該演示打印以下輸出:
Next: false
Error: error
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.