Maison  >  Article  >  interface Web  >  En savoir plus sur Promise.resolve()

En savoir plus sur Promise.resolve()

PHPz
PHPzoriginal
2024-02-18 19:13:05564parcourir

En savoir plus sur Promise.resolve()

Explication détaillée de Promise.resolve(), des exemples de code spécifiques sont requis

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 paramètre et renvoie un objet Promise. Si le paramètre entrant est un objet Promise, Promise.resolve() renverra directement l'objet ; si le paramètre entrant est un objet thenable (c'est-à-dire un objet avec une méthode then), Promise.resolve() convertira l'objet en un objet Promise. Et retourne ; si le paramètre entrant est une valeur primitive (pas un objet), une Promesse remplie avec la valeur primitive comme résultat sera renvoyée.

L'utilisation et le comportement de Promise.resolve() sont expliqués en détail à travers des exemples de code :

Exemple 1 :

Promise.resolve("成功")
  .then((msg) => {
    console.log(msg);
  })
  .catch((err) => {
    console.error(err);
  });

// 输出:成功

Dans l'exemple ci-dessus, nous avons créé un objet Fulfilled Promise via la méthode Promise.resolve(). Dans cet exemple, le paramètre entrant est une chaîne "success", donc Promise.resolve("success") renvoie directement un objet Promise avec le statut Fulfilled et le résultat "success". Ensuite, nous utilisons la méthode .then() pour traiter le résultat de l'objet Promise et l'imprimer via console.log().

Exemple 2 :

Promise.resolve(Promise.reject(new Error("失败")))
  .then((msg) => {
    console.log(msg);
  })
  .catch((err) => {
    console.error(err);
  });

// 输出:Error: 失败

Dans l'exemple ci-dessus, nous convertissons un objet Promise à l'état Rejeté en un objet Promise à l'état Fulfilled via la méthode Promise.resolve(). Dans cet exemple, le paramètre que nous transmettons est Promise.reject(new Error("Failure")), qui renvoie un objet Promise à l'état Rejected. Ensuite, nous utilisons Promise.resolve() pour convertir l'objet Promise en un objet Fulfilled Promise, traitons le résultat de l'objet Promise via la méthode .catch() et l'imprimons via console.error().

Exemple 3 :

Promise.resolve({ name: "张三", age: 18 })
  .then((obj) => {
    console.log(obj.name, obj.age);
  })
  .catch((err) => {
    console.error(err);
  });

// 输出:张三 18

Dans l'exemple ci-dessus, nous avons créé un objet Fulfilled Promise via la méthode Promise.resolve(). Dans cet exemple, le paramètre transmis est un objet { name: "Zhang San", age: 18 }, donc Promise.resolve({ name: "Zhang San", age: 18 }) renvoie directement un objet dont le statut est Fulfilled et Le résultat est un objet Promise pour cet objet. Ensuite, nous utilisons la méthode .then() pour traiter le résultat de l'objet Promise et imprimons le nom et l'âge des attributs de l'objet via console.log().

Résumé :

Grâce à l'exemple de code ci-dessus, nous pouvons voir que la fonction de la méthode Promise.resolve() est de convertir une valeur en un objet Fulfilled Promise. Il peut accepter différents types de paramètres, notamment des objets Promise, des objets pouvant être activés et des valeurs primitives. Utilisez la méthode Promise.resolve() pour convertir facilement tout type de valeur en un objet Promise et y effectuer un traitement ultérieur.

Il convient de noter que l'objet Promise renvoyé par la méthode Promise.resolve() est un objet Fulfilled Promise, son traitement ultérieur peut donc être traité directement à l'aide de la méthode .then() au lieu de la méthode anormale .catch(). situation.

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