如何在 Angular 服务中 return 自定义错误?
How to return custom error in Angular service?
我有一个服务可以 return http 查询,我的调用者默认接收结果并将其分配给 News[] 对象。
this.service.getNews(url).subscribe((res) => this.news = res);
现在我想在发生任何错误时抛出自定义错误:
getNews(url:string): Observable<News[]> {
return this.http.get<News[]>(url).catch(err => {
throw new Error("My Custom Error");
});
但是我得到一个编译错误 "cannot assign the {} to a Observable < News[] >" 因为错误不是 News[] 的类型。
那么如何在不更改 returning 类型 Observable < News[] > 的情况下将代码修改为 return 错误?
不要抛出错误,而是尝试 return 使用 Observable.throw
对其进行观察。
docs 特别提醒 return 来自 catch
运算符的可观察值。
我有一个服务可以 return http 查询,我的调用者默认接收结果并将其分配给 News[] 对象。
this.service.getNews(url).subscribe((res) => this.news = res);
现在我想在发生任何错误时抛出自定义错误:
getNews(url:string): Observable<News[]> {
return this.http.get<News[]>(url).catch(err => {
throw new Error("My Custom Error");
});
但是我得到一个编译错误 "cannot assign the {} to a Observable < News[] >" 因为错误不是 News[] 的类型。
那么如何在不更改 returning 类型 Observable < News[] > 的情况下将代码修改为 return 错误?
不要抛出错误,而是尝试 return 使用 Observable.throw
对其进行观察。
docs 特别提醒 return 来自 catch
运算符的可观察值。