NodeJS 前端得到的结果,尽快即使所有的结果还没有准备好

6tqwzwtp  于 2023-11-17  发布在  Node.js
关注(0)|答案(1)|浏览(86)

我在后端运行了很多fetch(超过一百个)。前端必须等待后端运行所有这些fetch,直到收到整个结果:

let result = []
    for (const origin of originList) {
      for (const destiny of destinationList) {

          const url = // mount url

          const respPromise = fetch(url)
            .then((resp) => resp.json())
            .then((data) => {
              result.push(data.text)
            })

          fetchPromises.push(respPromise)
      }
    }

    await Promise.all(fetchPromises)

    return result

字符串
前端(ReactJS)只是做一个fetch来调用后端。
上面的代码在很长一段时间后才收到正确的结果,因为它必须等待几十次提取才能运行。这是一种方法,所以我可以在它准备好后立即返回每个结果吗?

z4bn682m

z4bn682m1#

与其获取所有结果然后立即发送,不如考虑使用流式方法,即在结果可用时立即将其发送到前端。您可以在后端使用stream等库来创建前端可以使用的可读流,但请确保也适应前端。

相关问题