Skip to content

Instantly share code, notes, and snippets.

@sajadmsNew
Forked from kdziamura/waterfall.js
Created September 9, 2022 13:15
Show Gist options
  • Save sajadmsNew/8338e08e191b2dec71b0adc7bd5e79dd to your computer and use it in GitHub Desktop.
Save sajadmsNew/8338e08e191b2dec71b0adc7bd5e79dd to your computer and use it in GitHub Desktop.
Promise waterfall
function promiseChain(list, getPromise) {
return list.reduce((accPromise, entry) => {
return accPromise.then(acc => {
return getPromise(entry).then(result => {
return acc.concat(result);
});
});
}, Promise.resolve([]));
}
function getPromise(entry) {
return new Promise((resolve, reject) => {
setTimeout(() => resolve(entry * 2), 100);
});
}
promiseChain([0,1,2], getPromise).then(result => console.dir(result));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment