我正在使用 KOA2 来演示大管道。我希望在结果准备好时尽快输出结果,而不是等到所有结果准备好(然后全部输出)。
我卡在这里,代码如下:(get_users
或 get_posts
返回一个 promise )
async (ctx, next) => {
ctx.res.write("<html><body>...")
let data = await Promise.all( [res_fetch.get_users(), res_fetch.get_posts()] )
ctx.res.write(data[0])
ctx.res.write(data[1])
ctx.res.write("</body></html>")
ctx.res.end()
}
理想情况下应该是这样的:(我不知道如何实现)
let data = await Promise.oneFinished( [res_fetch.get_users(), res_fetch.get_posts()] )
if (data[0] is finished)
ctx.res.write(data[0])
else if (data[1] is finished)
ctx.res.write(data[1])
最佳答案
let data = await
Promise.all([
res_fetch.get_users().then(result => {
ctx.res.write(result)
}),
res_fetch.get_posts().then(result => {
ctx.res.write(result)
}),
])
ctx.res.write("</body></html>")
ctx.res.end()
关于node.js - Promise.all 可以尽快处理结果,而不是等待所有的 Promise 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47346100/