Ionic 4 и Angular 7 timeout и catchError не могут быть найдены в запросе get - PullRequest
0 голосов
/ 19 февраля 2019

Я обновил свой проект до ionic 4 и angular 7 и исправил все импорты и ошибки в коде, чтобы он работал в соответствии с изменениями Angular 7.

Единственное, что я не могу решитьэто следующее использование HttpClient:

if (params.method == 'GET') {
  return this.http.get(url, {headers: headers, params: request_params, withCredentials: true})
          .timeout(10000)
          .pipe(catchError(this.errorHandler()));
}

Я получаю 2 ошибки, первое:

Свойство 'timeout' не существует для типа 'Observable'.ts(2339)

И:

Не удается найти имя 'catchError'.Вы имели в виду 'RTCError'? Ts (2552)

this.errorHandler() - отправить ошибку, если что-то пошло не так.

1 Ответ

0 голосов
/ 19 февраля 2019

Используя Angular 7, вы используете RxJS 6+, вы провели некоторую миграцию, но забыли поместить timeout в pipe.Кроме того, если вы хотите передать функцию в catchError, просто передайте ее без вызова (без скобок)

if (params.method == 'GET') {
  return this.http.get(url, {headers: headers, params: request_params, withCredentials: true})
          .pipe(
              timeout(10000),
              catchError(this.errorHandler)
           );
}
...