MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Esta tradução está incompleta. Por favor, ajude a traduzir este artigo.

O método Promise.resolve(value) retorna um objeto Promise que é resolvido com o valor passado. Se o valor for  thenable (ex: tiver um método "then"), a promise retornada irá "seguir" esse thenable, adotando seu eventual estado; Do contrário a promise retornada será realizada com o valor.

Sintaxe

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

Parametros

value
Argumento a ser resolvido pela Promise. Pode também ser uma Promise ou um thenable.

Valor retornado

A Promise que será resolvida com o valor passado ou com a Promise passada como valor, caso o valor seja um objeto de Promise 

Descrição

A função estática Promise.resolve retorna uma promessa de que será resolvida.

Examples

Usando o método estático Promise.resolve

Promise.resolve("Success").then(function(value) {
  console.log(value); // "Success"
}, function(value) {
  // not called
});

Resolvendo um array

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

Resolvendo outra Promise

var original = Promise.resolve(true);
var cast = Promise.resolve(original);
cast.then(function(v) {
  console.log(v); // true
});

A ordem invertida dos logs acontece devido ao fato que os handlers são chamados assíncronamente. Veja como o then funciona aqui.

Resolvendo thenables e disparando Errors

// Resolving a thenable object
var p1 = Promise.resolve({ 
  then: function(onFulfill, onReject) { onFulfill("fulfilled!"); }
});
console.log(p1 instanceof Promise) // true, object casted to a Promise

p1.then(function(v) {
    console.log(v); // "fulfilled!"
  }, function(e) {
    // not called
});

// Thenable throws before callback
// Promise rejects
var thenable = { then: function(resolve) {
  throw new TypeError("Throwing");
  resolve("Resolving");
}};

var p2 = Promise.resolve(thenable);
p2.then(function(v) {
  // not called
}, function(e) {
  console.log(e); // TypeError: Throwing
});

// Thenable throws after callback
// Promise resolves
var thenable = { then: function(resolve) {
  resolve("Resolving");
  throw new TypeError("Throwing");
}};

var p3 = Promise.resolve(thenable);
p3.then(function(v) {
  console.log(v); // "Resolving"
}, function(e) {
  // not called
});

Especificações

Especificação Status Comentário
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Promise.resolve' in that specification.
Padrão Definição inicial no padrão ECMA.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Promise.resolve' in that specification.
Padrão em tempo real  

Browser compatibility

No compatibility data found. Please contribute data for "" to the MDN compatibility data repository.

See also

Etiquetas do documento e colaboradores

 Colaboradores desta página: teogenesmoura, BrOrlandi, iFgR
 Última atualização por: teogenesmoura,