Как вернуть пользовательскую ошибку в сервисе Angular? - PullRequest
0 голосов
/ 29 августа 2018

У меня есть служба, которая будет возвращать 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 голосов
/ 29 августа 2018

Вместо того, чтобы выдавать ошибку, попробуйте вернуть наблюдаемую ошибку, используя Observable.throw.

Документы специально напоминают о возврате наблюдаемого от оператора catch.

...