角度设置HTTP超时

S K*_*S K 6 http angular

我一直在寻找一种方法来停止/终止一个超过一定时间的http请求。因此,在Angular 5中,是否仍然需要为http请求设置超时?

如果有办法,我们如何在超时后执行某些操作,例如执行某些功能?

此问题中列出的方法

如何使angular2 http请求超时 给出错误:

错误TS2339:类型“可观察”上不存在属性“超时”。

Tom*_*ula 11

就像评论中提到的那样,您需要使用timeout运算符。但是,链接的答案有点过时了。从rxjs 5.5.2开始,您需要将该pipe方法与lettable运算符一起使用。假设您使用HttpClient发出请求,则不需要map(response => response.json())

像这样:

import { timeout, catchError } from 'rxjs/operators';
import { of } from 'rxjs/observable/of';

http.get('https://example.com')
   .pipe(
      timeout(2000),
      catchError(e => {
        // do something on a timeout
        return of(null);
      })
    )
Run Code Online (Sandbox Code Playgroud)

  • 那么我从哪里得到回复呢? (2认同)
  • `http.get('https://example.com').pipe(...).subscribe(response => console.log(response))` (2认同)
  • 您需要从 `catchError` 返回一个 observable。看看我的编辑。也请投票和/或接受我的回答:) (2认同)