Как написать функции rxjs catch и map, используя pipe после обновления - PullRequest
0 голосов
/ 26 января 2019

с момента обновления rxjs мой код больше не работает.Я понял, что мне нужно использовать pipe и вместо catch catchError, но все же что-то мне не хватает.Смотрите код ниже.Благодарен за помощь.

  public getAllTodos(): Observable<Todo[]> {
    return this.http.get(API_URL + '/todos')
    .pipe(
      map(response => {
       const todos = response.json();
       return todos.map((todo) => new Todo(todo));
      }),
      catchError(err => {
        this.handleError(err);
      })
   );
  }



    private handleError (error: Response | any) {
    console.error('ApiService::handleError', error);
    return Observable.throw(error);
  }

1 Ответ

0 голосов
/ 26 января 2019

Добро пожаловать в stackoverflow.

С обновленным модулем HttpClient нам больше не нужно использовать синтаксис .json.Примерно так:

  public getAllTodos(): Observable<Todo[]> {
    return this.http.get<Todo[]>(API_URL + '/todos')
    .pipe(
      catchError(err => {
        this.handleError(err);
      });
  }

Или, если вам все еще нужно сопоставить с реальными объектами:

  public getAllTodos(): Observable<Todo[]> {
    return this.http.get<Todo[]>(API_URL + '/todos')
    .pipe(
      map(todos => todos.map((todo) => new Todo(todo))),
      catchError(err => {
        this.handleError(err);
      })
   );
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...