如何在 Angular 6 中实现与 forkJoin 一起使用的通用错误处理?
How to implement generic error handling that works with forkJoin in Angular 6?
我有一个应用程序,我根据 rest.service.ts
中的官方 Angular 6 教程实现了错误处理
...
return this.http.get(url).pipe(catchError(this.handleError));
}
private handleError(error: HttpErrorResponse) {
if (error.error instanceof ErrorEvent) {
// A client-side or network error occurred. Handle it accordingly.
console.error("An error occurred:", error.error.message);
} else {
// The backend returned an unsuccessful response code.
// The response body may contain clues as to what went wrong,
console.error(
`Backend returned code ${error.status}, ` + `body was: ${error.error}`
);
}
// return an observable with a user-facing error message
return throwError(error.error);
}
我的问题是我还需要使用 forkJoin,并且通过这种错误处理,forkJoin 挂起。 forkJoin 教程中的错误处理如下所示:
throwError('This will error').pipe(catchError(error => of(error))
我如何创建一个也适用于 forkJoin 的通用错误处理程序?
我发现不需要更改其余服务中的错误处理,
我只需要将 catchError 通过管道传递给数组中推送的可观察对象,以便传递给 forkJoin。
this.observables.push(
this.rest.get(endpoint, null).pipe(catchError(error => of(error)))
);
我有一个应用程序,我根据 rest.service.ts
中的官方 Angular 6 教程实现了错误处理...
return this.http.get(url).pipe(catchError(this.handleError));
}
private handleError(error: HttpErrorResponse) {
if (error.error instanceof ErrorEvent) {
// A client-side or network error occurred. Handle it accordingly.
console.error("An error occurred:", error.error.message);
} else {
// The backend returned an unsuccessful response code.
// The response body may contain clues as to what went wrong,
console.error(
`Backend returned code ${error.status}, ` + `body was: ${error.error}`
);
}
// return an observable with a user-facing error message
return throwError(error.error);
}
我的问题是我还需要使用 forkJoin,并且通过这种错误处理,forkJoin 挂起。 forkJoin 教程中的错误处理如下所示:
throwError('This will error').pipe(catchError(error => of(error))
我如何创建一个也适用于 forkJoin 的通用错误处理程序?
我发现不需要更改其余服务中的错误处理, 我只需要将 catchError 通过管道传递给数组中推送的可观察对象,以便传递给 forkJoin。
this.observables.push(
this.rest.get(endpoint, null).pipe(catchError(error => of(error)))
);