在获取请求上找不到离子4和Angular 7超时和catchError

时间:2019-02-19 10:33:37

标签: angular ionic-framework angular7 ionic4

我将项目升级到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个错误,第一个是:

  

属性“超时”在类型上不存在   'Observable'.ts(2339)

并且:

  

找不到名称“ catchError”。 ts(2552)

this.errorHandler()是在出现问题时发送错误。

1 个答案:

答案 0 :(得分:0)

使用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)
           );
}