通常,希望具有将应用于所有请求的默认超时(例如30秒),并且可以针对特定的更长请求(例如600s)覆盖.
据Http我所知,没有很好的方法来指定默认超时.
有什么方法可以解决这个问题HttpClient?如何为所有传出请求定义默认超时,可以覆盖特定的超时?
我的有角4.3.2代码正在调用我的后端服务,该服务需要2-4分钟才能返回。仅使用默认this.http.get代码,我看到默认超时在2分钟后开始。但是,当我尝试将超时时间设置为超过2分钟时,它将失败,因为它将永远不会使超时时间超过2分钟。
我尝试使用100、100000(1.7m)和114000(1.9m),并且在这些值下超时的工作方式是正确的。但是当我尝试126000(2.1m),180000(3m)和1800000(30m)时,我再次看到它在2分钟后超时。
this.http.get('myUrl')
.timeout(126000)
.map((res: Response) => this.convertResponse(res));
Run Code Online (Sandbox Code Playgroud)
我也尝试了一下,.timeoutWith(126000, Observable.throw(new Error("Timed out")))但无济于事。
我在angularjs 4官方页面(https://angular.io/guide/http)中看到过设置http调用超时的信息,但是我没有找到任何参考。有没有人尝试设置它?
谢谢