【问题标题】:How long does HttpClient wait for a response (Angular)HttpClient 等待响应多长时间(Angular)
【发布时间】:2020-06-29 19:16:38
【问题描述】:

假设我创建了一个休息端点,它在发送响应之前会休眠 10 分钟,并且我在 Angular 中使用 HttpClient。 HttpClient 会等待 10 分钟的响应吗?一般来说,除非我使用 waitUntil 之类的东西,否则它会一直等待吗?

我在文档中搜索了这个,但找不到太多信息。如果您可以提供记录行为的来源,那将非常有帮助。提前致谢!

【问题讨论】:

  • 这不取决于 Angular,实际上是您的浏览器发出请求。中间可能有其他系统(代理)也有自己的超时。
  • @jonrsharpe 考虑将此作为答案,以便我可以接受并关闭它。

标签: angular angular-httpclient


【解决方案1】:

您可以通过像这样使用拦截器增加HTTP 请求时间来实现此目的。

import { Injectable } from '@angular/core';
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest} from '@angular/common/http';

@Injectable()
export class AngularInterceptor implements HttpInterceptor {
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return next.handle(req).timeout(600000, Observable.throw("Request timed out"));
    // 10 minute(600000 milliseconds ) would be the global default for example
  }
}

【讨论】:

  • 设置observable的超时时间,而不是实际的请求。
  • @jonrsharpe 您能否提供更多信息?我在我的提供程序中使用 TimeoutInterceptor:[ [{ 提供:HTTP_INTERCEPTORS,useClass:TimeoutInterceptor,multi:true }],[{ 提供:DEFAULT_TIMEOUT,useValue:600000 }],//以毫秒为单位,如果时间超过设置的限制,网络选项卡中的状态为(已取消)。它不会取消实际通话吗?提前谢谢你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-11
  • 1970-01-01
  • 1970-01-01
  • 2014-08-05
  • 1970-01-01
  • 2018-09-20
  • 2017-02-12
相关资源
最近更新 更多