【发布时间】:2020-01-31 07:58:00
【问题描述】:
我正在尝试创建一个我想要实现的 Promise 数组,但不确定如何最好地循环它们。
我认为下面的代码可以解决问题,但是当我创建 promise 数组时它会出现,我实际上将它们称为副作用,在 Promise.all 被命中之前我不想这样做。
import wait from 'waait'
const main = async () => {
console.log('Start')
const doStuff = async (name) => {
console.log('Do stuff called', name)
await wait(500)
return name + ' is cool'
}
const names = ['Dan', 'Mitchell', 'Josh']
const promises = names.map(name => doStuff(name))
// const data = await Promise.all(promises)
// console.log(data)
console.log('End')
}
main()
我发现随着最后两行被注释掉,doStuff 函数似乎被调用,因为 console.log 正在我的控制台中发生。
我期待在地图中创建的承诺的行为保持在草稿状态,然后在 Promise.all 中调用,但事实并非如此。
有人可以解释并解释应该如何做到这一点吗?
【问题讨论】:
标签: javascript typescript ecmascript-6 promise