[英]Abort observable subscription sequence in Angular 2
我正在嘗試為AuthHttp服務(angular2-jwt)創建一個“攔截器”。 我創建了一個擴展AuthHttp的類,並改用了它。 到目前為止,它似乎工作正常。 我現在想做的是,如果服務器響應401代碼,則將強制在我的應用程序內注銷並忽略隨后的訂閱(我不確定這些訂閱是否按順序執行,所以我不知道我是否我可能會問)。
因為我只想在這種情況下顯示錯誤,所以我只需要從此訂閱中止隊列並忽略其他訂閱。 這是到目前為止獲取get方法的代碼:
get(url: string, options?: RequestOptionsArgs): Observable<Response> {
let observable = super.get(url, options);
observable.subscribe(
() => { },
(error: Response) => {
if (error.status === 401) {
// Logout and ignore all other subscriptions
}
}
);
return observable;
}
這可能嗎?
謝謝!
您可以退訂 。 的subscribe
方法返回Subscription
對象。 您可以使用它來取消訂閱:
get(url: string, options?: RequestOptionsArgs): Observable<Response> {
let observable = super.get(url, options);
let subscription = observable.subscribe(
() => { },
(error: Response) => {
if (error.status === 401) {
// Logout and ignore all other subscriptions
subscription.unsubscribe();
}
}
);
return observable;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.