La méthode Promise.all est la meilleure façon de s'assurer qu'une certaine fonction est exécutée uniquement après la terminaison de tous les callbacks dans Node.js. Cette méthode est très pertinente dans les situations où l'exécution parallèle de tâches asynchrones est nécessaire et que la fonction suivante doit attendre que toutes ces tâches soient terminées.
En JavaScript, une Promise est un objet qui prévoit de produire une valeur à un certain moment dans le futur. La méthode Promise.all
prend une itérable de promesses (comme un tableau de promesses) et retourne une nouvelle promesse qui est résolue lorsque toutes les promesses dans l'itérable ont été résolues, ou qui est rejetée dès qu'une des promesses dans l'itérable est rejetée.
Voici un exemple de comment utiliser la méthode Promise.all
:
let promise1 = new Promise((resolve, reject) => {
setTimeout(resolve, 500, 'Hello');
});
let promise2 = new Promise((resolve, reject) => {
setTimeout(resolve, 500, 'World');
});
Promise.all([promise1, promise2]).then(values => {
console.log(values); // ['Hello', 'World']
});
Dans cet exemple, les promesses sont résolues après un délai de 500 millisecondes. La fonction console.log est ensuite exécutée après que les deux promesses aient été résolu, affichant ['Hello', 'World'].
En pratique, utiliser Promise.all
est une bonne pratique dans Node.js surtout lorsque vous avez besoin de faire plusieurs appels asynchrones simultanément et de vous assurer que tous sont complétés avant de poursuivre. C'est plus efficace et plus lisible que d'imbriquer des callbacks, et cela évite également le fameux problème de "callback hell" en JavaScript où vous vous retrouvez avec plusieurs niveaux d'indentation dus aux callbacks imbriqués.