gpt4 book ai didi

angular - Angular 的 ExceptionHandler 可观察到的错误处理

转载 作者:太空狗 更新时间:2023-10-29 19:29:20 25 4
gpt4 key购买 nike

我希望 Angular 的 ExceptionHandler 能够处理 API 调用中发生的任何错误。问题是它们永远不会到达 ExceptionHandler 的 handleError 方法,我不确定我需要做些什么不同的事情。

// data.service.ts

addItem(name: string): Observable<any> {

return this.http.post(name)
.map(this.extractData)
.catch((error) => this.handleError(error))
.share();
}

private handleError(error: any): any {
const msg = `${error.status} - ${error.statusText}`

// this did not work
//throw new Error(msg);

// also doesn't work
return Observable.throw(new Error(msg));
}

// item.component.ts

const observable = this.dataService.addItem('test');
observable.subscribe(
(success) => console.log('success'),
(error) => { throw new Error('test'); // doesn't work }
);

最佳答案

看起来 zone 无法捕获错误以将其传递给 Angular ErrorHandler。也许 map 可以解决问题。

     return this.http.post(name)
.map(this.extractData)
.catch((error) => this.handleError(error))
.map(result=> {
if(result === 'good one') { return 'good one'; }
else { new Error(result);}
})
.share();

关于angular - Angular 的 ExceptionHandler 可观察到的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43661148/

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