我有一个贯穿数组的 API,我想在每个数组元素上向客户端发送数据

I have an API that runs through an array and I want to send data to the client on each array element

我有一个贯穿数组的 API,我想在每个数组元素上将数据发送到客户端,我已经尝试将 res.write 与 res.flush 一起使用,但它仍然等到最后全部发送,有没有办法分块发送数据?

for (let i = 0; i < searchUrl.length; i++) {
      const element = searchUrl[i];
      const element_details = await getDetailsforURL(element)
      res.write(JSON.stringify(element_details))
      res.flush()
      //return_array.push(element_details)
    }
    res.end()

.write() 将内容添加到响应正文中。基本上每个 res.write() 都将数据添加到正文并使用 res.end() 发送。如果要分块发送,则每个块需要一个请求,这意味着客户端需要不断发送请求,直到收到所有数据。

如果你不想发送整个数组,你可以在服务器端处理并将结果发送给客户端:

let response = [];
for (let i = 0; i < searchUrl.length; i++)
    const element = searchUrl[i];
    const element_details = await getDetailsforURL(element);
    response.push(element_details);
    
}
res.write(JSON.stringify(element_details));
res.end();