From 39f2114f9797eb51994966c6bb8ff1814c9a4da8 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 12:36:08 +0100 Subject: unslug fr: move --- .../global_objects/promise/resolve/index.html | 156 +++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 files/fr/web/javascript/reference/global_objects/promise/resolve/index.html (limited to 'files/fr/web/javascript/reference/global_objects/promise/resolve') diff --git a/files/fr/web/javascript/reference/global_objects/promise/resolve/index.html b/files/fr/web/javascript/reference/global_objects/promise/resolve/index.html new file mode 100644 index 0000000000..abda218c20 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/promise/resolve/index.html @@ -0,0 +1,156 @@ +--- +title: Promise.resolve() +slug: Web/JavaScript/Reference/Objets_globaux/Promise/resolve +tags: + - ECMAScript 2015 + - JavaScript + - Méthode + - Promise + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Promise/resolve +--- +
{{JSRef}}
+ +

La méthode Promise.resolve(valeur) renvoie un objet {{jsxref("Promise")}} qui est résolu avec la valeur donnée. Si cette valeur est une promesse, la promesse est renvoyée, si la valeur possède une méthode {{jsxref("Promise.then","then")}}, la promesse renvoyée « suivra » cette méthode et prendra son état ; sinon, la promesse renvoyée sera tenue avec la valeur.

+ +
{{EmbedInteractiveExample("pages/js/promise-resolve.html")}}
+ + + +
+

Attention ! Promise.resolve() ne doit pas être appelée sur un objet thenable qui se résout en lui-même. Cela provoquera une récursion infinie et resolve() tentera d'aplatir ce qui ressemble à une promesse imbriquée à l'infini.

+
+ +

Syntaxe

+ +
Promise.resolve(valeur);
+Promise.resolve(promesse);
+Promise.resolve(suivant);
+
+ +

Paramètres

+ +
+
valeur
+
L'argument qu'on souhaite résoudre avec cette promesse (Promise). Cet argument peut être un objet Promise ou un objet avec une méthode then à résoudre à la suite.
+
+ +

Valeur de retour

+ +

Une promesse ({{jsxref("Promise")}}) qui est résolue avec la valeur indiquée en argument ou la promesse passée en argument si celui-ci est une promesse.

+ +

Description

+ +

La fonction statique Promise.resolve renvoie un objet Promise qui est résolu.

+ +

Exemples

+ +

Utilisation de la méthode statique Promise.resolve

+ +
Promise.resolve("Succès").then(function(valeur) {
+  console.log(valeur); // "Succès"
+}, function(valeur) {
+  // n'est pas appelée
+});
+
+ +

Résoudre un tableau

+ +
var p = Promise.resolve([1,2,3]);
+p.then(function(v) {
+  console.log(v[0]); // 1
+});
+
+ +

Résoudre une autre Promise

+ +
var original = Promise.resolve(33);
+var cast = Promise.resolve(original);
+cast.then(function(value) {
+  console.log("value: " + value);
+});
+console.log("original === cast ? " + (original === cast));
+
+// affiche ceci dans la console (dans cet ordre) :
+// original === cast ? true
+// value: 33
+
+ +

L'ordre des traces dans la console est dû au fait que les gestionnaires then() sont appelés de façon asynchrone (plus de détails sur then dans cet article).

+ +

Résoudre des objets avec then et renvoyer des erreurs

+ +
// Résoudre un objet avec then
+var p1 = Promise.resolve({
+  then: function(onFulfill, onReject) { onFulfill("tenue !"); }
+});
+console.log(p1 instanceof Promise) // true, l'objet est transformée en une Promise
+
+p1.then(function(v) {
+    console.log(v); // "tenue !"
+  }, function(e) {
+    // n'est pas appelée
+});
+
+// L'objet avec then renvoie une erreur avant le callback
+// La promesse n'est pas tenue
+var thenable = { then: function(resolve) {
+  throw new TypeError("Renvoi d'erreur");
+  resolve("Résolution ");
+}};
+
+var p2 = Promise.resolve(thenable);
+p2.then(function(v) {
+  // n'est pas appelée
+}, function(e) {
+  console.log(e); // TypeError : Renvoi d'erreur
+});
+
+// L'objet avec then renvoie une erreur après le callback
+// La promesse est tenue
+var thenable = { then: function(resolve) {
+  resolve("Résolue");
+  throw new TypeError("Erreur");
+}};
+
+var p3 = Promise.resolve(thenable);
+p3.then(function(v) {
+  console.log(v); // "Résolue"
+}, function(e) {
+  // n'est pas appelée
+});
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-promise.reject', 'Promise.reject')}}{{Spec2('ES2015')}}Définition initiale au sein d'un standard ECMA.
{{SpecName('ESDraft', '#sec-promise.resolve', 'Promise.resolve')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.Promise.resolve")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf