我有以下代碼作為 http 攔截器的一部分:
handler(next, request) {
return next.handler(request)
.pipe(
tap(
(event) => {
if (event instanceof HttpResponse) {
this.spinnerService.requestEnded();
}
},
(error: HttpErrorResponse) => {
this.spinnerService.resetSpinner();
throw error;
}
),
);
}
它使用自 Angular 8 以來已棄用的 tap(第 4 行)。如何替換 tap?我所做的搜索并沒有幫助我找到答案。謝謝。
uj5u.com熱心網友回復:
使用 { next, error } 物件
tap({
next: (event) => {
if (event instanceof HttpResponse) {
this.spinnerService.requestEnded();
}
},
error: (error: HttpErrorResponse) => {
this.spinnerService.resetSpinner();
throw error;
}
})
uj5u.com熱心網友回復:
我認為 tap 沒有被棄用,只是改變了使用 tap 的方式。您可以嘗試以下方法:
updateHero(hero: Hero): Observable<any> {
return this.http.put(this.heroesUrl, hero, this.httpOptions).pipe(
tap(_ => this.log(`updated hero id=${hero.id}`)),
catchError(this.handleError<any>('updateHero'))
);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/487486.html
標籤:javascript 有角度的 打字稿 rxjs
上一篇:布局組件中沒有覆寫路由,但仍然在React中渲染布局
下一篇:字串陣列的分段錯誤
