我在后端运行了很多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来调用后端。
上面的代码在很长一段时间后才收到正确的结果,因为它必须等待几十次提取才能运行。这是一种方法,所以我可以在它准备好后立即返回每个结果吗?
1条答案
按热度按时间z4bn682m1#
与其获取所有结果然后立即发送,不如考虑使用流式方法,即在结果可用时立即将其发送到前端。您可以在后端使用
stream
等库来创建前端可以使用的可读流,但请确保也适应前端。