У меня есть цепочка наблюдаемых. Вот фрагмент кода:
//get dynamic tree
flatMap(res => this.dynamicReportId !== null ? this.reportService.getDynamicTree(this.dynamicReportId) : of({})),
tap(res => this.dynamicTree = res),
//get dynamic report
flatMap((res) => this.dynamicReportId !== null ? this.reportService.getDynamicReport(this.dynamicReportId) : of({})),
Однако, когда я получил 500 ошибок API из первого запроса (получить динамическое дерево c), цепочка останавливается и никогда не входит во второй flatMap (Dynami c). отчет).
Вот функция this.reportService.getDynamicTree()
:
get(path: string, params: HttpParams = new HttpParams()): Observable<any> {
return this.http.get(`${environment.apiBaseUrl}${path}`, {headers: this.setHeaders(true), params: params}).pipe(
catchError(error => this.processError(path, error)),
map((res: Response) => res));
}
, где this.processError
возвращает observableThrowError(res);
Что я должен вернуть в случае ошибки, чтобы продолжить цепь? Или причина в других вещах?