Skip to content

Instantly share code, notes, and snippets.

@alexisljn
Last active September 11, 2019 10:07
Show Gist options
  • Save alexisljn/8d8820e388fbe2b3ce6c60b00b11a189 to your computer and use it in GitHub Desktop.
Save alexisljn/8d8820e388fbe2b3ce6c60b00b11a189 to your computer and use it in GitHub Desktop.
Resolving javascript's promises sequentially
// COMMENTAIRE TECHNIQUE
// Si on ne donne pas un Promise.resolve() en valeur initiale, le "accPromise.then()" ne peut
// pas fonctionner car then n'est pas une fonction sur le tableau sur lequel on applique reduce()
// Retourner buildPromise permet de lui faire prendre la place de AccPromise.
// Pour autant cette ligne execute aussi la promesse et c'est parce que AccPromise est
// devenu la promesse qu'on attends sa résolution pour rentrer dans le then.
buildPromise(data, tableAbbreviation)
{
return new Promise((resolve, reject) => {
doSomething().then(() => {
resolve();
}).catch(e => {
console.error(e);
reject(e);
})
})
}
arrayOfData.reduce((accPromise, item) => {
return accPromise.then(() => {
return buildPromise(item);
});
}, Promise.resolve());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment