如何在Angular服务中返回自定义错误?

时间:2018-08-29 17:46:38

标签: angular typescript angular-services

我有一个将返回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");
});

但是我遇到了一个编译错误,“无法将{}分配给可观察的”,因为该错误不是News []的类型。

那么如何在不更改返回类型Observable 的情况下修改代码以返回错误?

1 个答案:

答案 0 :(得分:2)

与其抛出错误,不如尝试使用Observable.throw返回可观察到的错误。

docs特别提醒要从catch运算符返回一个可观察值。