调用一个函数在角HttpClient的超时的情况下,(call a function in case

2019-09-28 04:13发布

我有一个函数发送带有超时每个像在服务器上的几个要求:

this.httpClient.get(url, { headers: headers })
        .timeout(30000)
        .subscribe(
            (response) => {
                ...
            },
            error => {
                ...
            }
                ...
            );

在超时(30秒)的情况下,每个人的要求被取消,这是可以理解的。 我的问题是,在超时的情况下,取消的请求不被视为一个错误,所以它不会去请求的错误部分。 是否有任何可能性,称在这种情况下,一个功能呢?

Answer 1:

如果使用的是6角,途中与超时处理走的是pipe/timeout ,请看看下面这个例子:

this.http.get('https://httpstat.us/200?sleep=5000')
  .pipe(timeout(1000))
  .subscribe(response => {
    console.log('forceTimeout', response);
  }, (error) => {
    console.log('Error', error);
    this.error = error.constructor.name;
  })

这片段是从这个例子我写证明HTTP拦截: https://stackblitz.com/edit/angular-my-http-interceptor?file=src%2Fapp%2Fapp.component.ts



文章来源: call a function in case of httpClient timeout in Angular