gpt4 book ai didi

javascript - 如何在 JavaScript 中使用 `Array#map` 中的 `Promise.all`

转载 作者:可可西里 更新时间:2023-11-01 02:53:05 25 4
gpt4 key购买 nike

我正在尝试创建一个包含项目数组的 Promise.all。所以如果我这样创建它,它就可以正常工作

Promise.all([
Query.getStuff(items[0]),
Query.getStuff(items[1])
]).then(result => console.log(result))

如果我尝试像这样创建 Promise.all,它不起作用

Promise.all([
items.map(item => Query.getStuff(item))
]).then(result => console.log(result))

then block 在 Query.getStuff(item) 之前运行。我错过了什么?

最佳答案

你应该写

Promise.all(items.map(...))

代替

Promise.all([ items.map(...) ])

Array#map返回一个数组,这意味着您最初编写代码的方式实际上是将多维数组传递给 Promise.all — 如 [ [promise1, promise2, ...] ] — 而不是预期的一维版本 [promise1, promise2, ...]


修改后的代码:

Promise.all(
items.map(item => Query.getStuff(item))
).then(result => console.log(result))

关于javascript - 如何在 JavaScript 中使用 `Array#map` 中的 `Promise.all`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43434438/

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