gpt4 book ai didi

angular - 如何在 RxJS 5.5 中捕获错误

转载 作者:太空狗 更新时间:2023-10-29 18:03:37 26 4
gpt4 key购买 nike

我正在使用 Angular 5 和 RXJS 5.5

在我可以做这样的事情之前

getProjectInfo(id): Observable<any> {
const URL = `${this.API}/${id}`;
return this.http.get(URL)
.pipe(map(res => res)),
catchError(this.handleServerError);
}

handleServerError(error: any) {
console.log(error.error || error.json() || error);
return Observable.throw(error.error || error.json() || error || 'Server error');
}

但是现在我得到了这个错误

Error:(21, 5) TS2322:Type 'UnaryFunction<Observable<{}>, Observable<any>>' is not assignable to type 'Observable<any>'.
Property '_isScalar' is missing in type 'UnaryFunction<Observable<{}>, Observable<any>>'.

这个我也试过

getProjectInfo(id): Observable<any> {
const URL = `${this.API}/${id}`;
return this.http.get(URL)
.pipe(map(res => res)),
catchError(err => this.handleError('getProjInfo', URL));
}
private handleError(method: String, URL: string): any {
return (err: any) => {
const errMsg = `error in ${method}() retrieving ${URL}`;
console.log(`${errMsg}:`, err);
if (err instanceof HttpErrorResponse) {
console.log(`status: ${err.status}, ${err.statusText}`);
}
return Observable.throw(errMsg);
};
}

我做错了什么?

最佳答案

请记住您的括号。您返回 pipe 结果和 catchEror 结果除以 ,:

return this.http.get(URL)
.pipe(map(res => res)),
catchError(this.handleServerError);

将一个括号放在自己的位置:

return this.http.get(URL)
.pipe(
map(res => res),
catchError(this.handleServerError)
);

关于angular - 如何在 RxJS 5.5 中捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47538060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com