如何在 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 运算符的可观察值。