Introduction détaillée à Promise dans es6
Promise
Promise est un objet à partir duquel des messages pour des opérations asynchrones peuvent être obtenus
Caractéristiques : L'état de l'objet est ; non affecté par l'impact du monde extérieur (En attente en cours, Résolu terminé, Échec rejeté), seul le résultat de l'opération asynchrone peut déterminer l'état actuel une fois que l'état change, il ne changera plus (uniquement de En attente à Résolu et En attente à Résolu ; Rejeté);
Inconvénients : Une fois créé, il sera exécuté immédiatement et ne pourra pas être annulé à mi-chemin s'il n'y a pas de fonction de rappel, les erreurs générées en interne ne peuvent pas être reflétées en externe lorsqu'elles sont en attente ; , il est impossible de savoir à quelle étape se trouve la progression actuelle ;
Généralement, ne définissez pas la fonction de rappel de l'état Reject dans la méthode then (c'est-à-dire le deuxième paramètre de then) , mais utilisez la méthode catch ; car cela peut capturer les erreurs dans le then précédent, et la méthode Plus proche de l'écriture synchrone (try/catch)
catch renvoie une promesse. objet, vous pouvez donc également appeler la méthode then plus tard ; dans la méthode catch, cela peut également générer une erreur
La méthode Promise.all est utilisée pour empaqueter plusieurs instances Promise dans une nouvelle Instance Promise ; les paramètres de la méthode Promise.all ne peuvent pas être des tableaux, mais doivent avoir une interface Iterator, et chaque membre renvoyé est une instance Promise uniquement lorsque les états p1, p2, p3 sont remplis, l'état p deviendra ; rempli ; tant qu'il y en a une rejetée, p deviendra rejeté
Promise.race encapsule également plusieurs instances de Promise dans une nouvelle Promise tant que l'état d'un objet change ; l'état de p changera en conséquence, et la valeur du premier objet modifié sera renvoyée et transmise à la fonction de rappel de p
-
Promise.resolve convertit l'objet en objet Promise, et le statut est résolu
// 将thenable对象转为Promise对象var thenable = { then(resolve, reject) { resolve(200) } }var p = Promise.resolve(thenable) p.then((data) => { console.log(data) }) // 200
Copier après la connexion Promise .reject renvoie un objet Promise, et le statut de l'instance est rejeté ; restent inchangés comme motif de rejet et deviennent les paramètres des méthodes ultérieures.
-
Deux méthodes supplémentaires
// donePromise.prototype.done = function(onFulfilled, onRejected) {this.then(onFulfilled, onRejected) .catch(function(reason) { setTimeout(() => {throw reason}, 0) }); };// finallyPromise.prototype.finally = function (callback) { let P = this.constructor;return this.then( value => P.resolve(callback()).then(() => value), reason => P.resolve(callback()).then(() => { throw reason }) ); };
Copier après la connexiondone sont utilisées pour capturer les erreurs qui peuvent survenir à tout moment et les lancer globalement ;
finally est utilisé pour les opérations qui seront exécutées quel que soit l'état de l'objet Promise. Il accepte une fonction de rappel commune comme paramètre (doit être exécuté) ;
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





Dans la vie quotidienne, nous rencontrons souvent des problèmes entre promesses et réalisation. Que ce soit dans une relation personnelle ou dans une transaction commerciale, tenir ses promesses est essentiel pour instaurer la confiance. Cependant, les avantages et les inconvénients de l’engagement sont souvent controversés. Cet article explorera les avantages et les inconvénients des engagements et donnera quelques conseils sur la façon de tenir parole. Les avantages promis sont évidents. Premièrement, l’engagement renforce la confiance. Lorsqu’une personne tient parole, elle fait croire aux autres qu’elle est une personne digne de confiance. La confiance est le lien établi entre les personnes, qui peut les rendre plus

Vue est un framework frontal populaire et vous rencontrez souvent diverses erreurs et problèmes lors du développement d'applications. Parmi eux, Uncaught(inpromise)TypeError est un type d’erreur courant. Dans cet article, nous discuterons de ses causes et de ses solutions. Qu'est-ce qu'une erreur de type non interceptée (inpromise) ? L'erreur Uncaught(inpromise)TypeError apparaît généralement dans

Une explication détaillée de Promise.resolve() nécessite des exemples de code spécifiques. Promise est un mécanisme en JavaScript pour gérer les opérations asynchrones. Dans le développement réel, il est souvent nécessaire de traiter certaines tâches asynchrones qui doivent être exécutées dans l'ordre, et la méthode Promise.resolve() est utilisée pour renvoyer un objet Promise qui a été rempli. Promise.resolve() est une méthode statique de la classe Promise, qui accepte un

Utilisez les objets Promise pour modifier les fonctions ordinaires afin de renvoyer Promise afin de résoudre le problème de l'enfer des rappels. Comprendre la logique d'appel du succès et de l'échec de Promise et pouvoir l'ajuster de manière flexible. Comprenez les connaissances de base, utilisez-les en premier, puis intégrez et absorbez lentement les connaissances.

Compatibilité des navigateurs : quels navigateurs prennent en charge Promises ? Alors que la complexité des applications Web continue d'augmenter, les développeurs sont impatients de résoudre le problème de la programmation asynchrone en JavaScript. Dans le passé, les développeurs utilisaient souvent des fonctions de rappel pour gérer les opérations asynchrones, mais cela aboutissait à un code complexe et difficile à maintenir. Pour résoudre ce problème, ECMAScript6 a introduit Promise, qui offre un moyen plus intuitif et flexible de gérer les opérations asynchrones. La promesse est une méthode utilisée pour gérer les exceptions

Les états de l'objet promis sont : 1. en attente : état initial, ni état de réussite ni d'échec ; 2. accompli : signifie que l'opération a été terminée avec succès 3. rejeté : signifie que l'opération a échoué ; Une fois qu'un objet Promise est terminé, il passe de l'état en attente à l'état réalisé ou rejeté, et ne peut plus changer. Les objets Promise sont largement utilisés en JavaScript pour gérer les opérations asynchrones telles que les requêtes AJAX et les opérations chronométrées.

Avantages : asynchrone et non bloquant, ne bloque pas le thread principal ; améliore la lisibilité et la maintenabilité du code ;

La promesse est un modèle de programmation pour gérer les opérations asynchrones. C'est un objet qui représente l'achèvement ou l'échec final d'une opération asynchrone. Il peut être considéré comme un engagement envers les opérations asynchrones. Il peut mieux gérer et organiser le code asynchrone. plus lisible et maintenable. Les objets de promesse ont trois états : en attente, rempli et rejeté. L'idée principale de Promise est de séparer les opérations asynchrones des fonctions de rappel et d'exprimer les dépendances entre les opérations asynchrones via des appels en chaîne.
