La requête asynchrone es6 a trois états : 1. en attente (état d'attente), puis et catch ne sera pas déclenché ; 2. fill (état satisfait), lorsque la résolution est activement rappelée, elle sera dans cet état, et ensuite ( ) sera rappelé ;3. Rejeter (état de rejet) déclenchera la fonction de rappel catch ultérieure.
L'environnement d'exploitation de ce tutoriel : système Windows 7, ECMAScript version 6, ordinateur Dell G3.
Promise est une solution pour la programmation asynchrone :
1 Principalement utilisée pour les calculs asynchrones
2. Les opérations asynchrones peuvent être mises en file d'attente, exécutées dans l'ordre souhaité et renvoyer les résultats attendus
3. entre les objets nous aide à traiter les files d'attente
la promesse a trois états :
1, en attente [en attente] état initial
2, opération remplie [implémentation] réussie
3, rejetée [rejeté] ] L'opération a échoué
Lorsque le le statut de promesse change, la fonction de réponse dans then() sera déclenchée pour traiter les étapes suivantes ;
L'état de l'objet Promise change. Une fois l'état de deux promesses modifié, il n'y aura aucun changement : de en attente à remplie
de en attente à rejetée.
Tant que ces deux situations se produiront, le statut sera solidifié et ne changera plus.
Regardez l'image ci-dessous
Ce qui est imprimé est l'état de résolution, qui déclenche le rappel de la transition de résolution
Regardez l'image ci-dessous
Si une erreur est signalée, la promesse dans l'état promis sera renvoyée, déclenchant le rappel catch Tant qu'il y a une erreur, s'il y en a
.puis plus tard, elle ne sera pas exécutée uniquement . catch sera exécuté
Voir ci-dessous
Non. Lancez un objet de promesse d'erreur, ou est-il dans l'état de résolution
Enfin, regardez l'image ci-dessous
Aussi longtemps ? lorsqu'un objet de promesse d'erreur est lancé, il est dans l'état de rejet
Sortez l'ordre de 1, 2, 3 ci-dessous
Question 1 : Imprimez 1 3 dans l'ordre, 2 ne sera pas imprimé car le catch ne sera pas exécuté (la promesse de .then est dans l'état résolu Catch ne sera pas exécuté )
Question 2 : Retour 1 2 3, car une erreur a été générée lors de l'impression 1. L'objet renvoie une promesse dans l'état de rejet et entre dans l'état de rejet, mais .catch est à nouveau dans l'état de résolution promis, donc .then sera à nouveau exécuté, et quoi est finalement renvoyé est une promesse sous l'état de résolution
La méthode Promise.all est utilisée pour regrouper plusieurs instances Promise dans une nouvelle instance Promise.
Promise.all(iterator)Promise.all([ new Promise((resolve,reject)=>{ setTimeout(()=>{ resolve('result1') },2000) }), new Promise((resolve,reject)=>{ setTimeout(()=>{ resolve('result2') },1000) })]).then(results =>{ results[0] results[1] console.log(results)})
【Apprentissage recommandé : Tutoriel avancé javascript】
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!