使用catchError的角度错误处理(返回可观察的某些函数)

时间:2019-04-17 14:45:41

标签: angular rxjs

在Angular文档中处理服务中的HTTP错误响应时,我遇到了这样的情况:

getContext(){
   return this.http.post(this.testUrl, {})
       .pipe(
           catchError(this.handleError)
       )
}

handleError(error: HttpErrorResponse){
    if(error.error instanceof ErrorEvent){
        console.log('An error occurred:', error.error.message);
    } else {
        console.log(
            `Backend returned code ${error.status}` +
            `body was ${error.error}`
        )
    }
    return throwError('Need to fix!');
}

我想知道为什么this.handleError没有传递一个参数(一个HTTPErrorResponse),以及它如何在没有收到参数的情况下工作?

1 个答案:

答案 0 :(得分:0)

handleError方法作为回调传递给catchError

doSomething(callback) {
    // Call the callback with arguments
    callback('Hello world');
}
saySomething(param) {
   console.log(param);
}
doSomething(saySomething);

尝试想象catchError对您的handleError函数所做的相同。将使用参数调用它,您只需指定发生错误时要调用的函数即可。

祝你好运!