Maison  >  Article  >  interface Web  >  Que signifie la promesse ?

Que signifie la promesse ?

(*-*)浩
(*-*)浩original
2019-06-11 11:09:4022178parcourir

JS est monothread et la solution Promise est une idée de programmation asynchrone, qui est beaucoup plus puissante que les fonctions et événements de rappel traditionnels. La promesse équivaut à un espace réservé pour le résultat d'une opération asynchrone. Elle ne s'abonne pas à un événement et ne transmet pas non plus de fonction de rappel à la fonction cible. Au lieu de cela, la fonction renvoie une promesse (équivalent à un numéro de commande).

Que signifie la promesse ?

Promise : Anglais promise signifiant, l'objet Promise stocke le résultat d'un événement (généralement une opération asynchrone) qui se terminera dans le futur.

Promise a trois états : (Apprentissage recommandé : Tutoriel vidéo Javascript)

pendding,rejected,resolved

Il n'y a que deux possibilités pour changer l'état de l'objet Promise :

pendding->rejected,pendding->resolved

Utilisation de base :

new Promise((resolved,rejected)=>{})

Promise objet résolu et fonctions rejetées Lorsque le rappel de l'état d'événement asynchrone en attente->résolu est réussi, la fonction résolue sera appelée lorsque l'opération asynchrone échoue, le la fonction rejetée sera appelée.

Le paramètre de fonction then (résolu, rejeté) de Promise a deux paramètres, une fonction résolue et une fonction rejetée.

Promise's catch() : capture la fonction d'erreur de promesse, qui a la même fonction que celle rejetée dans le paramètre de la fonction then. Elle gère les erreurs étant donné que l'erreur générée par Promise a une nature bouillonnante, elle peut être transmise en continu et. sera transmis à catch, il est donc recommandé que toutes les gestions d'erreurs soient placées dans catch, et seules les erreurs réussies seront alors traitées.

Une grande fonctionnalité de Promise est qu'il peut être appelé dans une chaîne, et les objets Promise peuvent ensuite être renvoyés et capturés.

Promise.all([promise1,promise2]) : Le paramètre est un tableau d'objets de promesse. Lorsque l'état de tous les objets de promesse est résolu, l'état de l'objet sera résolu, puis sera appelé. immédiatement. Lorsqu'un objet de promesse est rejeté, le statut de l'objet sera rejeté et le catch sera exécuté.

Promise.race([promise1,promise2]) : fonction de course Lorsque l'état d'un objet promis change, l'objet adoptera le même état et exécutera la fonction correspondante.

Cycle de vie de la promesse

Chaque promesse passera par un court cycle de vie, initialement dans un état en attente, ce qui signifie que l'opération asynchrone n'est pas encore terminée. Une promesse en attente est également considérée comme non réglée. Une fois l'opération asynchrone terminée, la Promesse est considérée comme réglée et entre dans l'un des deux états possibles :

1. Réalisée : L'opération asynchrone de la Promesse a réussi Fin ; Rejeté : l'opération asynchrone de Promise ne s'est pas terminée correctement, ce qui peut être une erreur ou être causée par d'autres raisons.

Une fois l'état changé, il est "solidifié" et restera dans cet état et ne changera plus. Lorsque l'état change, la fonction liée par promise.then sera appelée. Remarque : Une fois qu'une promesse est créée, elle sera « exécutée immédiatement » et ne pourra pas être annulée. C'est aussi l'un de ses défauts.

Pour des articles plus techniques liés à Javascript, veuillez visiter la colonne

tutoriel js

pour apprendre !

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!

Déclaration:
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
Article précédent:qu'est-ce que l'es6Article suivant:qu'est-ce que l'es6