在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
),以及它如何在没有收到参数的情况下工作?
答案 0 :(得分:0)
handleError
方法作为回调传递给catchError
。
doSomething(callback) {
// Call the callback with arguments
callback('Hello world');
}
saySomething(param) {
console.log(param);
}
doSomething(saySomething);
尝试想象catchError
对您的handleError
函数所做的相同。将使用参数调用它,您只需指定发生错误时要调用的函数即可。
祝你好运!