У меня есть три или четыре функции, возвращающие обещания следующим образом:
function foo(){
return new Promise((resolve,reject) => {
//do some work
return resolve();
//some condition
return reject();
})
}
Итак, у меня есть три или четыре функции типа foo, скажем, я добавляю эти функции в массив под названием functionArray следующим образом:
functionArray.push(foo1, foo2, foo3)
Как можно использовать Promise.all в этом сценарии? Я бы хотел добиться примерно такого:
Promise.all(functionArray).then(() => {
console.info(done)
})



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Подробно можно прочитать про Promise.allздесь.
Метод Promise.all (итеративный) возвращает одно обещание, которое разрешается, когда разрешены все обещания в итеративном аргументе или когда итерируемый аргумент не содержит обещаний. Он отклоняет по причине первого отклоненного обещания.
functionArray.push(foo(), foo1(), foo2())
Promise.all(functionArray).then((done)=>{
console.info(done)
})
//here functionArray is array of promises, and done is array of response from those promises in similar order.
Также ваша функция foo не является обещанием. Возврат foo() - обещание. Итак, functionArray должен содержать обещания.
Это работает, спасибо.