Как использовать обещание.all в подобном сценарии?

У меня есть три или четыре функции, возвращающие обещания следующим образом:

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)
})
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
76
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Подробно можно прочитать про 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 должен содержать обещания.

Ответ принят как подходящий

Promise.all принимает массив обещаний, а не функции, возвращающие обещания, functionArray.push(foo1(),foo2(),foo3()) будет работать.

Также обратный вызов .then вернет ответ

Promise.all(functionArray).then((response)=>{
   console.info('done' , response)
})

Это работает, спасибо.

Naman Gupta 27.12.2018 12:44

Рад, что помогли :-)

Shubham Khatri 27.12.2018 12:45

Другие вопросы по теме