这是我最初的errorHandler方法,可以正常工作且没有错误:
private handleError(error: unknown) {
if(error instanceof HttpErrorResponse){
console.error(error.message);
}
return throwError(error);
}
的调用方式如下:catchError(this.handleError)
但是我想在handleError中包括一些其他参数,所以我将其更改为:
private handleError(error: unknown, operation: string ="") {
console.log(operation);
if(error instanceof HttpErrorResponse){
console.error(error.message);
}
return throwError(error);
}
}
它将被这样称呼:catchError(“ operation name”);
现在我在终端中收到此消息:
类型'Observable'的参数不能分配给类型'(err:any,catch:Observable>)=> ObservableInput'的参数。 类型'Observable'不提供签名'(err:any,catch:Observable>):ObservableInput'的匹配项。
在我的浏览器中:
TypeError: this.selector is not a function
at CatchSubscriber.error (catchError.js:29)
at RetryWhenSubscriber.notifyError (OuterSubscriber.js:7)
at InnerSubscriber._error (InnerSubscriber.js:14)
at InnerSubscriber.error (Subscriber.js:55)
at MergeMapSubscriber.notifyError (OuterSubscriber.js:7)
at InnerSubscriber._error (InnerSubscriber.js:14)
at InnerSubscriber.error (Subscriber.js:55)
at Observable._Observable__WEBPACK_IMPORTED_MODULE_0__.Observable.scheduler.schedule.error.error [as _subscribe] (throwError.js:4)
at Observable._trySubscribe (Observable.js:42)
at Observable.subscribe (Observable.js:28)
如果我将return语句更改为其他可观察到的值,即使只是of(1),也不会出现任何错误。
在我向handleError签名添加其他参数之前,为什么可以使用类似throwError生成的Observable的方法?