gpt4 book ai didi

javascript - Reduce 中的 Async/Await

转载 作者:行者123 更新时间:2023-11-30 18:59:37 25 4
gpt4 key购买 nike

我正在尝试将 async/awaitreduce 方法一起使用。但不知何故,只有循环的第一次迭代有效。一旦完成第一个 reduce 迭代,papers 对象将跳过 await。是否可以使用 reduce 创建一个对象,同时从 promise 中收集它的内容,同时等待整个过程?

归约函数:

const papers = await page.concepts.reduce(async (acc, cur) => {
acc[cur.paperID] = await getPageData(`papers/${ cur.paperID }`, 'md')
return acc
}, {})

注意:getPageData 返回一个 promise 。

最佳答案

您可以创建一个 promise 数组,然后使用 Promise.all 来解析它们。如果任何请求失败,Promise.all 将停止处理剩余的请求。

const papersPromises = page.concepts.map(cur => 
getPageData(`papers/${ cur.paperID }`, 'md')
)

const result = await Promise.all(papersPromises)
// result will be an array with the results

关于javascript - Reduce 中的 Async/Await,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59649669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com