El método Promise.resolve(value) retorna un objeto Promise que es resuelto con el valor dado. Si el valor es una promise, esa promise es devuelta; si el valor es un thenable (si tiene un método "then"), el valor devuelto le seguirá a ese thenable, adoptando su estado; de otro modo la promise devuelta estará completada con el valor.

Sintáxis

Promise.resolve(value);
Promise.resolve(promise);
Promise.resolve(thenable); 

Parámetros

value
Argumento por resolver por esta Promise. También puede ser una Promise o un thenable por resolver.

Valor retornado

Una Promise que es resuelta con el valor dado, o con la promise pasada como valor, si el valor era un objeto promise.

Descripción

La función estática Promise.resolve retorna una Promise que es resuelta.

Ejemplos

Utilizando el método estático Promise.resolve

Promise.resolve('Éxito').then(function(value) {
  console.log(value); // "Éxito"
}, function(value) {
  // no es llamada
});

Resolviendo un arreglo

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

Resolviendo otra Promise

var original = Promise.resolve(33);
var cast = Promise.resolve(original);
cast.then(function(value) {
  console.log('valor: ' + value);
});
console.log('original === cast ? ' + (original === cast));

// registros, en orden:
// original === cast ? true
// valor: 33

El orden invertido de los registros se debe al hecho de que los handler then sean llamados asíncronamente. Vea cómo funciona then aquí.

Resolviendo thenables y arrojando Errores

// Resolviendo un objeto thenable
var p1 = Promise.resolve({ 
  then: function(onFulfill, onReject) { onFulfill('¡Completada!'); }
});
console.log(p1 instanceof Promise) // true, objeto convertido en una Promise
j
p1.then(function(v) {
    console.log(v); // "¡Completada!"
  }, function(e) {
    // no es llamada
});

// Thenable arroja antes del callback
// Rechaza la Promise
var thenable = { then: function(resolve) {
  throw new TypeError('Arrojando');
  resolve('Resolviendo');
}};

var p2 = Promise.resolve(thenable);
p2.then(function(v) {
  // no es llamada
}, function(e) {
  console.log(e); // TypeError: Arrojando
});

// Thenable arroja después del callback
// Resuelve la Promise
var thenable = { then: function(resolve) {
  resolve('Resolviendo');
  throw new TypeError('Arrojando');
}};

var p3 = Promise.resolve(thenable);
p3.then(function(v) {
  console.log(v); // "Resolviendo"
}, function(e) {
  // no es llamada
});

Especificaciones

Especificación Estado Comentario
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'Promise.resolve' en esta especificación.
Standard Definición inicial en un estándar de ECMA.
ECMAScript Latest Draft (ECMA-262)
La definición de 'Promise.resolve' en esta especificación.
Draft  

Compatibilidad con navegadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Soporte básicoChrome Soporte completo 32Edge Soporte completo SiFirefox Soporte completo 29IE Sin soporte NoOpera Soporte completo 19Safari Soporte completo 8WebView Android Soporte completo 4.4.3Chrome Android Soporte completo 32Edge Mobile Soporte completo SiFirefox Android Soporte completo 29Opera Android Soporte completo SiSafari iOS Soporte completo 8Samsung Internet Android Soporte completo Sinodejs Soporte completo 0.12

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte

Véase también

Etiquetas y colaboradores del documento

Colaboradores en esta página: HappyEduardoMilk, ChristianMarca
Última actualización por: HappyEduardoMilk,