Javascript 如何使用Axios查看长时间运行响应的进度?

Javascript 如何使用Axios查看长时间运行响应的进度?,javascript,axios,Javascript,Axios,在我的服务器上,我正在启动一个进程,其结果将一直写入响应中。完成后,我会发送200。通过浏览器直接访问URL,当我从服务器发送文本时,我会看到文本逐渐逐行显示 但是,在执行Axios.get时(函数名通常是这样),我只在Axios最终收到200条时才收到大部分文本。在Axios从服务器接收响应时,是否有任何方法可以使用Axios获取并打印成块的响应 Axios.get(backendURL + "package/pios", { headers: { Authorizat

在我的服务器上,我正在启动一个进程,其结果将一直写入响应中。完成后,我会发送200。通过浏览器直接访问URL,当我从服务器发送文本时,我会看到文本逐渐逐行显示

但是,在执行Axios.get时(函数名通常是这样),我只在Axios最终收到200条时才收到大部分文本。在Axios从服务器接收响应时,是否有任何方法可以使用Axios获取并打印成块的响应

Axios.get(backendURL + "package/pios", {
  headers: { Authorization: "Bearer " + myToken },
}).then((res) => {
  //Doing something only when the response ends. 
});

如果您想坚持使用HTTP,我能想到的唯一解决方案是写入一大块数据,并在响应中包含一些标识符,这将让您获得响应的下一部分,然后您基本上继续发送API请求,并使用在每个前一个响应中获得的标识符来获得下一部分。(我不确定此方法是否有名称)


但我认为最好的解决方案是使用WebSocket,然后您可以非常简单地随时向您的客户发送您需要的任何内容。

也许HTTP不是适合此用例的工具,您可能希望使用WebSocket。我确实在不同的上下文中使用了WebSocket,这是相同的要求。但这一次,考虑到浏览器可以做到这一点(页面不断加载并得到响应,直到服务器发送200条),我确信Axios可以做到这一点。我还可以使用iFrame并设置其URL来模拟相同的行为。