A quoi sert la promesse dans es6

WBOY
Libérer: 2022-03-30 16:48:40
original
2231 Les gens l'ont consulté

Dans es6, promise est utilisé pour créer des objets de promesse et effectuer des opérations asynchrones. La syntaxe est "const promise = new Promise((resolve,reject)=>{...})" ; Utilisé pour représenter différents résultats d'opérations asynchrones.

A quoi sert la promesse dans es6

L'environnement d'exploitation de ce tutoriel : système Windows 10, ECMAScript version 6.0, ordinateur Dell G3.

À quoi sert promise dans es6

Promise est une solution de programmation asynchrone fournie dans ES6. Promise elle-même est un constructeur

typeof Promise  //  function
Copier après la connexion

Généralement, nous utiliserons new Promise() pour appeler le constructeur pendant le développement et créer une nouvelle promesse. object

Créez un objet Promise pour les opérations asynchrones

Promise est également un constructeur Vous devez utiliser le mot-clé new pour créer une instance. Il accepte une fonction lors de sa création, et la fonction a deux paramètres de type de fonction :

  • resolve

  • reject

Donc, l'opération de création d'une promesse est la suivante :

const promise = new Promise((resolve,reject)=>{...})
Copier après la connexion

resolve et rejet Les deux paramètres de fonction déterminent le changement d'état de la promesse actuelle et comment gérer les résultats de la promesse asynchrone. opération Ils peuvent tous être asynchrones. Le résultat de l'opération est transmis.

1. L'état de l'objet n'est pas affecté par le monde extérieur.

L'objet Promise est une opération asynchrone avec trois états : en attente (en cours), rempli (réussi) et rejeté (échoué).

Seul le résultat de l'opération asynchrone peut déterminer dans quel état se trouve la promesse, et aucune autre opération ne peut modifier cet état

2 Une fois l'état de la promesse modifié, il n'y aura aucun changement et le résultat pourra être obtenu à tout moment. temps.

Il n'y a que deux possibilités pour que l'état de l'objet Promise change : d'en attente à rempli ou d'en attente à rejeté. Tant que ces deux situations se produisent, le statut ne changera pas et conservera toujours ce résultat. C'est ce qu'on appelle résolu. Si le changement a déjà eu lieu, si vous ajoutez une fonction de rappel à l'objet Promise, vous obtiendrez le résultat immédiatement. Ceci est différent d'un événement. La caractéristique d'un événement est que si vous le manquez et l'écoutez à nouveau, vous n'obtiendrez pas le résultat. L'avantage d'utiliser Promise est de mettre en file d'attente les opérations asynchrones lors du traitement des programmes asynchrones selon l'exécution. commandez et renvoyez les résultats attendus, de sorte que même pour plusieurs opérations asynchrones, vous puissiez facilement utiliser Promise pour effectuer des appels en chaîne

3. Promise présente également quelques défauts.

Tout d'abord, la promesse ne peut pas être annulée. Une fois créée, elle sera exécutée immédiatement et ne pourra pas être annulée à mi-chemin. Deuxièmement, si vous ne définissez pas de fonction de rappel, les erreurs générées en interne par Promise ne seront pas reflétées en externe. Troisièmement, lorsqu'il est en attente, il est impossible de savoir à quelle étape se trouve la progression actuelle (qui commence tout juste ou est sur le point d'être terminée)

La soi-disant Promesse est simplement un conteneur qui stocke un événement qui se terminera dans le futur ( généralement le résultat d'une opération asynchrone).

ES6 stipule que l'objet Promise est un constructeur utilisé pour générer des instances Promise.

Le code suivant crée une instance Promise.

const promise = new Promise(function(resolve, reject) {
  // ... some code
  if (/* 异步操作成功 */){
    resolve(value);
  } else {
    reject(error);
  }
});
Copier après la connexion

Le constructeur Promise accepte une fonction comme paramètre. Les deux paramètres de la fonction sont résoudre et rejeter. Ce sont deux fonctions fournies par le moteur JavaScript et n'ont pas besoin d'être déployées par vous-même.

La fonction de résolution est de changer le statut de l'objet Promise de "inachevé" à "réussi" (c'est-à-dire de en attente à résolu). Elle est appelée lorsque l'opération asynchrone est réussie et le résultat de l'opération. l'opération asynchrone est passée en paramètre. ;La fonction de la fonction de rejet est de changer l'état de l'objet Promise de « inachevé » à « échoué » (c'est-à-dire de en attente à rejeté). Elle est appelée lorsque l'opération asynchrone échoue). , et l'erreur signalée par l'opération asynchrone est passée en paramètre.

Une fois l'instance Promise générée, vous pouvez utiliser la méthode then pour spécifier les fonctions de rappel pour l'état résolu et l'état rejeté respectivement.

promise.then(function(value) {
  // success
}, function(error) {
  // failure
});
Copier après la connexion

Alors la méthode peut accepter deux fonctions de rappel comme paramètres. La première fonction de rappel est appelée lorsque l'état de l'objet Promise est résolu, et la deuxième fonction de rappel est appelée lorsque l'état de l'objet Promise est rejeté. Parmi elles, la deuxième fonction est facultative et ne doit pas être fournie. Les deux fonctions acceptent la valeur transmise par l'objet Promise en tant que paramètre.

【Recommandations associées :

tutoriel vidéo javascript

, front-end web

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:
es6
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!