Из массива сгенерить массив последовательно выполняющихся Promise?

Есть массив значений, из него нужно сгенерить массив Promise, но каждый следующий не должен выполниться раньше предыдущего.
Я сделал через reduce. Можно ли сделать компактнее ?
https://jsfiddle.net/rpbz3erm/5/
  • Вопрос задан
  • 265 просмотров
Решения вопроса 1
https://jsfiddle.net/r9e4f8ef/
Вот как раз та задача, которая велосипедируется в дикий крокодил при помощи Promises, и элементарна для async/await.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@JSmitty
const makePromise = val => new Promise((resolve, reject) => { setTimeout(() => resolve(val), 0); })

const seqPromises = arr => arr.reduce((a, v) => a.then(makePromise.bind(null, v)), Promise.resolve());

seqPromises([1,2,3,4]).then(console.log);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы