перехватчики работают как промежуточное программное обеспечение, поэтому, если один из них падает, ошибка возрастает до тех пор, пока он не будет перехвачен.
interceptor1.handle(request)
.pipe(
switchMap(() => interceptor2.handle(request))
.pipe(
switchMap(() => interceptor3.handle(request))
.pipe(
...
)
)
)
.subscribe()
простая ошибка перехвата в некотором перехватчике, чтобы остановить его распространение.
return next.handle(request)
.pipe(
catchError(error => of('error caught')),
finalize(() => {
console.log(`${request.method} '${request.urlWithParams}' ProgressInterceptor --.`);
this.progressService.decrease();
}),
);