Quels sont les trois états de la requête asynchrone es6 ?

青灯夜游
Libérer: 2023-02-14 13:46:05
original
2223 Les gens l'ont consulté

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.

Quels sont les trois états de la requête asynchrone es6 ?

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.

Quels sont les trois états de la requête asynchrone es6 ?

Ensuite, capturez les détails du statut de changement

Regardez l'image ci-dessous

Quels sont les trois états de la requête asynchrone es6 ?

Ce qui est imprimé est l'état de résolution, qui déclenche le rappel de la transition de résolution

Quels sont les trois états de la requête asynchrone es6 ?

Regardez l'image ci-dessous

Quels sont les trois états de la requête asynchrone es6 ?

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é

Quels sont les trois états de la requête asynchrone es6 ?

Voir ci-dessous

Quels sont les trois états de la requête asynchrone es6 ?

Non. Lancez un objet de promesse d'erreur, ou est-il dans l'état de résolution

Quels sont les trois états de la requête asynchrone es6 ?

Enfin, regardez l'image ci-dessous

Quels sont les trois états de la requête asynchrone es6 ?

Aussi longtemps ? lorsqu'un objet de promesse d'erreur est lancé, il est dans l'état de rejet

Quels sont les trois états de la requête asynchrone es6 ?

Utilisez la question pour renforcer la transition de la promesse Compréhension des changements

Sortez l'ordre de 1, 2, 3 ci-dessous

Quels sont les trois états de la requête asynchrone es6 ?

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 all de Promise

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)})
Copier après la connexion

【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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal