我一直在寻找一种方法来停止/终止一个超过一定时间的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)