Angular 发送HTTPclient post请求,但不要等待响应,并在后端调用发回响应时订阅

Angular 发送HTTPclient post请求,但不要等待响应,并在后端调用发回响应时订阅,angular,post,rxjs,timeout,httpclient,Angular,Post,Rxjs,Timeout,Httpclient,我对Angular和RxJS操作符不熟悉。我需要一个场景的帮助,在这个场景中,我在后端一次上传多个文档(RESTAPI) 在后端处理文档需要时间my observable在2分钟内超时 现在我正在考虑一种解决方案,在这种解决方案中,我将把post请求发送到后端,而不会等待响应。并在后端准备好响应时进行订阅 请建议我的方法是否可行?以及如何使用和Rxjs运算符在angular 8中实现它 以下是my httpclient post方法: createNewVersion(formData: For

我对Angular和RxJS操作符不熟悉。我需要一个场景的帮助,在这个场景中,我在后端一次上传多个文档(RESTAPI)

在后端处理文档需要时间my observable在2分钟内超时

现在我正在考虑一种解决方案,在这种解决方案中,我将把post请求发送到后端,而不会等待响应。并在后端准备好响应时进行订阅

请建议我的方法是否可行?以及如何使用和Rxjs运算符在angular 8中实现它

以下是my httpclient post方法:

createNewVersion(formData: FormData) {
    let payload = new HttpParams();
    return this.httpClient
      .post(endpoint, formData, { params: payload }).subscribe((response: boolean) => {
        this.isLoading = false;
        if (response != null)
          this.observableVersion.next(true);
      });
  }

目前我在2分钟后遇到超时错误,而响应不是来自后端,这就是我必须更改逻辑的原因


请提供帮助。

超时很可能是由服务器引发的。据我所知,使用RxJS无法控制浏览器超时。您可以尝试使用标头增加超时。如果没有,则需要在后端配置排队机制,在初始上载请求后立即返回响应,您可以稍后检查上载是否完成。您可以尝试轮询方法,将数据发送到后端。后端不会立即处理该文件。相反,它会将要处理的文件排队,并将文件连接到一个id。此id会在处理后返回并用于轮询请求。在服务器端,有工人处理排队的文件。@MichaelD如何使用Keep Alive标头增加超时?你能给出一些相同的参考代码吗?@user5281762:附加的链接中有一个例子。注意,我自己没有用过。所以这只是一个建议。@MichaelD Keep Alive头球被禁止。您是否建议其他解决方案?超时很可能是由。据我所知,使用RxJS无法控制浏览器超时。您可以尝试使用标头增加超时。如果没有,则需要在后端配置排队机制,在初始上载请求后立即返回响应,您可以稍后检查上载是否完成。您可以尝试轮询方法,将数据发送到后端。后端不会立即处理该文件。相反,它会将要处理的文件排队,并将文件连接到一个id。此id会在处理后返回并用于轮询请求。在服务器端,有工人处理排队的文件。@MichaelD如何使用Keep Alive标头增加超时?你能给出一些相同的参考代码吗?@user5281762:附加的链接中有一个例子。注意,我自己没有用过。所以这只是一个建议。@MichaelD Keep Alive头球被禁止。你有没有其他建议?