【发布时间】:2019-07-21 17:43:32
【问题描述】:
我有一个简单的问题,我认为 Angular 专家很容易回答。
我有一个方法如下:
private uploadPicture(imagePath: string, apiUrl: string): Observable<ApiResponse<string>> {
return this.convertFileFromFilePathToBlob(imagePath).pipe(
switchMap(item => this.convertBlobToFormData(item)),
switchMap(formData => this.postImageToServer(formData, apiUrl)),
catchError((error: any) => {
if (error instanceof Response) {
return throwError(new AppError(error));
} else {
return throwError(new AppError(null, 'Error occured at convertFileFromFilePathToBlob.'));
}
})
);
}
我在一个方法中链接了 3 个方法:
convertFileFromFilePathToBlobconvertBlobToFormDatapostImageToServer
所有 3 种方法都可以在任何故障点引发/发出错误。我的问题是在这种情况下如何进行异常处理?
我当前的实现是否只有一个catchError 可以吗?如果没问题,如果任何链式方法引发错误,是否会执行?
或
是否需要在每个方法之后使用多个 catchError 运算符来捕获其错误?如果是,我不知道该怎么做?
谁能解释在这种情况下我应该如何处理错误?
【问题讨论】:
-
一个
catchError很好,当其中任何一个出现错误时都会执行。
标签: angular ionic-framework rxjs ionic4 rxjs-pipeable-operators