Maison >interface Web >js tutoriel >Promesse.all()
Compréhension approfondie de JavaScriptPromesse.all()
Promesse.all()
est une méthode puissante en JavaScript pour gérer plusieurs opérations asynchrones simultanément. Il reçoit un objet itérable (généralement un tableau) contenant plusieurs promesses et renvoie une seule promesse. Cette promesse unique ne sera résolue que si toutes les promesses d'entrée sont résolues avec succès ; si une promesse est rejetée, la promesse unique sera immédiatement rejetée. Ce guide explorera les fonctionnalités, la syntaxe, le comportement et des exemples pratiques de Promesse.all()
.
Promesse.all()
est simple :
<code class="language-javascript">Promise.all(iterable);</code>
Cette méthode renvoie une Promise avec le comportement suivant :
Promesse.all()
renvoie un tableau de résultats dans le même ordre que les promesses d'entrée. Promesse.all()
sera immédiatement rejetée et la raison du rejet de la promesse sera renvoyée. Dans cet exemple, nous créons trois promesses qui se résolvent après différents délais d'attente :
<code class="language-javascript">const promise1 = new Promise((resolve) => setTimeout(() => resolve('One'), 1000)); const promise2 = new Promise((resolve) => setTimeout(() => resolve('Two'), 2000)); const promise3 = new Promise((resolve) => setTimeout(() => resolve('Three'), 3000)); Promise.all([promise1, promise2, promise3]) .then(values => console.log(values)) // 输出: ['One', 'Two', 'Three'] .catch(error => console.error(error));</code>
Ici, Promesse.all()
attend que les trois promesses soient résolues, puis enregistre leurs résultats sur la console sous forme de tableau.
Vous pouvez également mélanger valeurs résolues et Promesses :
<code class="language-javascript">const p1 = Promise.resolve(42); const p2 = Promise.resolve('Hello'); const p3 = new Promise((resolve) => setTimeout(() => resolve('World'), 1000)); Promise.all([p1, p2, p3]) .then(values => console.log(values)) // 输出: [42, 'Hello', 'World'] .catch(error => console.error(error));</code>
Dans ce cas, p1 et p2 se résolvent immédiatement, tandis que p3 se résout après une seconde.
Si l'une des Promesses est rejetée, Promesse.all()
sera immédiatement rejetée :
<code class="language-javascript">const p1 = Promise.resolve(42); const p2 = Promise.reject(new Error('Failed!')); const p3 = new Promise((resolve) => setTimeout(() => resolve('This will not run'), 1000)); Promise.all([p1, p2, p3]) .then(values => console.log(values)) .catch(error => console.error(error.message)); // 输出: 'Failed!'</code>
Ici, parce que p2 est rejeté, toute l'opération échoue et un message d'erreur est enregistré.
Scénarios d'application dePromesse.all()
Promesse.all()
est un outil essentiel pour gérer plusieurs opérations asynchrones en JavaScript. Il simplifie le code en permettant aux développeurs d'attendre la résolution de plusieurs promesses avant de continuer avec une autre logique. Cependant, il est crucial de gérer correctement les échecs, car l’échec d’une promesse entraînera l’échec de l’ensemble de l’opération. Comprendre comment utiliser Promesse.all()
efficacement vous permet d'écrire du code asynchrone plus propre et plus efficace.
Références : [1] https://www.php.cn/link/ebd58b8a3f1d72f4206201da62fb1204 [2] https://www.php.cn/link/9181a74736d3b86345dadbc90e29390e [3] https://www.php.cn/link/2a3e953a5e3d81e67945bce5519f84c8 [4] https://www.php.cn/link/4c0303ffb193bd5e66078909a15268aa [5] https://www.php.cn/link/9c25dc28b94e5226f1983330dc421cec [6] https://www.php.cn/link/b2f1384b8feb04d2de9a85124dc64613 [7] https://www.php.cn/link/f1e1fd9e97f59379ed79bdf258d55042 [8] https://www.php.cn/link/9a5859b8f76280c97c0c185a19d17014 [9] https://www.php.cn/link/d3f010d6bc392b904f63ce5792891b71 [10] https://www.php.cn/link/4d419d5b4274ea8faaf4f37410b97bd6
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!