Last active
September 11, 2019 10:07
-
-
Save alexisljn/8d8820e388fbe2b3ce6c60b00b11a189 to your computer and use it in GitHub Desktop.
Resolving javascript's promises sequentially
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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