MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

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

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 (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 État Commentaires
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Promise.reject' dans cette spécification.
Standard Définition initiale au sein d'un standard ECMA.
ECMAScript Latest Draft (ECMA-262)
La définition de 'Promise.resolve' dans cette spécification.
Projet  

Compatibilité des navigateurs

FonctionnalitéChromeFirefoxEdgeInternet ExplorerOperaSafari
Support simple32.029.0(Oui)(Non)197.1
FonctionnalitéAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Support simple4.4.432.0(Oui)29(Non)(Oui)8.0

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, lotfire24, Goofy
 Dernière mise à jour par : SphinxKnight,