Défi
Énoncé
Créer trois promesses qui se résolvent après respectivement 200 ms, 500 ms et 100 ms, chacune avec une valeur différente ("A", "B", "C"). Les lancer en parallèle avec Promise.all. Afficher le tableau de résultats dans l'ordre des promesses (pas l'ordre d'arrivée) dès que toutes sont résolues. La durée totale doit être proche de 500 ms, pas de 800 ms.
Contraintes
- ES2022+ (Node.js 18+).
- Utiliser
Promise.all— pasPromise.allSettled, pasPromise.race, pasawaitséquentiel. - Chaque promesse est construite autour de
setTimeout(pas d'import externe). - Afficher le tableau avec
console.log. - Pas de bibliothèque externe.
Exemple
function delai(ms, valeur) {
return new Promise((resolve) => setTimeout(() => resolve(valeur), ms));
}
async function main() {
const resultats = await Promise.all([
delai(200, "A"),
delai(500, "B"),
delai(100, "C"),
]);
console.log(resultats);
}
main();
[ 'A', 'B', 'C' ]
L'ordre des valeurs dans le tableau correspond à l'ordre des promesses dans Promise.all, indépendamment de l'ordre de résolution.