جاوااسکریپت - انگولار: مدیریت خطای API هم در اینترسپتور و هم در subscribe


من چند API دارم که نیاز به مدیریت منطق کسبوکار در صورت بروز هرگونه خطا توسط API دارند. در این مرحله، از یک interceptor برای مدیریت خطاها در هر API استفاده میکنم. این به خوبی کار میکند، اما این اجازه نمیدهد که بخش «error» در subscribe فراخوانی شود. در زیر نمونهای از کد برای وضعیت فعلی را مشخص کردهام:

رهگیر

import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpErrorResponse, HttpEvent, HttpRequest, HttpHandler } from '@angular/common/http';
import { catchError } from 'rxjs/operators';
import { Observable, of } from 'rxjs';
import { ToastrService } from 'ngx-toastr';

@Injectable()
export class HttpErrorInterceptor implements HttpInterceptor {

    constructor(private toastr: ToastrService) { }

    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

        return next.handle(req).pipe(
            catchError((err, caught: Observable<HttpEvent<any>>) => {
                if (err instanceof HttpErrorResponse) {
                    this.toastr.error(!err.error.message ? 'Internal Server Error' : err.error.message);
                    return of(err as any);
                }
                throw err;
            })
        );
    }
}

آنچه من میخواهم این است که اینترسپتور همانطور که هست کار کند و اجازه دهد من منطق کسبوکار را در بخش خطای اشتراکگذاری به صورت زیر بنویسم:

جزء

constructor(private http: HttpClientService) {}

sampleMethod() {
    this.http.getAllData().subscribe({
        next: response => { ... work on success response },
        error: error => { ... perform specific task required on error scenario } // This is not running until & unless I write logic to skip this certain API in interceptor
    });
}

من اینجا با استفاده از یک API نشان دادهام اما در نیازم، چندین سناریو دارم که در آنها نیاز دارم منطق را در قسمت خطا بنویسم و نمیخواهم منطق زیادی در اینترسپتور بنویسم.

آیا کسی میتواند به من نمونهای از نحوه دستیابی به این سناریو بدهد؟