Maison  >  Article  >  interface Web  >  Quels sont les différents états d'une promesse JavaScript et comment sont-ils liés à des termes tels que « réglé », « résolu » et « différé » ?

Quels sont les différents états d'une promesse JavaScript et comment sont-ils liés à des termes tels que « réglé », « résolu » et « différé » ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-06 18:39:02740parcourir

What are the different states of a JavaScript promise and how are they related to terms like

La terminologie des promesses JavaScript

Comprendre la terminologie entourant les promesses JavaScript peut être difficile. Selon la spécification Promises/A et ES6, les promesses ont trois états distincts :

  • En attente : La promesse n'a pas encore déterminé son résultat.
  • Réalisé : La promesse a acquis avec succès une valeur de résultat.
  • Rejetée : La promesse a rencontré une raison pour ne pas acquérir de résultat, souvent une erreur.

Réglée, résolue et remplie

Le terme « réglée » fait référence à la réalisation ou au rejet, collectivement, ce qui implique que la promesse n'est plus en attente. Cependant, « résolu » est un concept complexe.

Il peut parfois être utilisé de manière interchangeable avec « accompli », mais une interprétation plus précise est que « résoudre » est l'acte de fixer le sort de la promesse à être remplie ou rejetée. . La « résolution » d'une promesse signifie qu'elle est sortie de l'état en attente.

Récursivité et résolution

La procédure de résolution de promesse est récursive. Résoudre une promesse avec une valeur fondamentale la réalise, tandis que la résoudre avec une autre promesse adopte l'état de cette promesse. Cela peut conduire à des scénarios dans lesquels une promesse est résolue mais son état final est indéterminé. Dans de tels cas, la promesse est dite « résolue » dans le sens où son destin n'est plus ambigu, mais son état réel peut encore être en suspens.

Différé

Différer un résultat implique de fournir une promesse asynchrone pour le résultat au lieu de renvoyer le résultat directement. Ce processus renvoie également un rejet différé au lieu d'être lancé de manière synchrone.

Dans certaines bibliothèques, comme Q, le terme « defer » fait référence à la méthode qui construit un objet Deferred. Il est important de noter que les noms de variables ne reflètent pas toujours avec précision leur signification prévue, et « defer » peut également être une abréviation de « deferredObject ».

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