Я пытаюсь создать Массив Обещаний, который я хотел бы выполнить, но не знаю, как лучше всего пройти через них.
Я думал, что следующий код делает свое дело, но появляется, когда я создаю массив обещаний, я фактически называю их побочным эффектом, что я не хочу делать до тех пор, пока не будет запущен 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, но это не так.
Может ли кто-нибудь объяснить и предложить объяснение того, как это должно быть сделано?