Promise.resolve()

Метод Promise.resolve(value) возвращает Promise выполненый с переданным значением. Если переданное значение является thenable - обьект (т.е. имеет метод "then" method), возвращаемое обещание будет следовать thenable - обьекту, принимая свое состояние; в ином случае возвращаемое обещание будет выполнено с переданным значением.

Синтаксис

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

Параметры

value
Значение с которым будет выполнено обещание. Может также быть обещанием или обьект подобный обещанию (thenable - обьект имеющий метод then).

Возращаемое значение

Выполненый с переданным значением Promise.

Описание

Метод Promise.resolve возвращает выполненое обещание (Promise).

Примеры

Использование метода Promise.resolve

Promise.resolve("Success").then(function(value) {
  console.log(value); // "Success"
}, function(value) {
  // не будет вызванна
});

Выполнение с массивом

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

Выполнение с другим обещанием ( Promise)

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

Выполнение с thenable объектом и выбрасывание исключений

// Выполнение с thenable объектом
var p1 = Promise.resolve({ 
  then: function(onFulfill, onReject) { onFulfill("fulfilled!"); }
});
console.log(p1 instanceof Promise) // true

p1.then(function(v) {
    console.log(v); // "fulfilled!"
  }, function(e) {
    // не вызывается
});

// Thenable объект выбрасывает исключение 
// перед вызовом колбека Promise resolves
var thenable = { then: function(resolve) {
  throw new TypeError("Throwing");
  resolve("Resolving");
}};

var p2 = Promise.resolve(thenable);
p2.then(function(v) {
  // не вызывается
}, function(e) {
  console.log(e); // TypeError: Throwing
});

// Thenable объект выбрасывает исключение
// после вызова колбека 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) {
  // не вызывается
});

Спецификация

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Promise.resolve' в этой спецификации.
Стандарт Initial definition in an ECMA standard.
ECMAScript Latest Draft (ECMA-262)
Определение 'Promise.resolve' в этой спецификации.
Черновик  

Совместимость с браузерами

Возможность Chrome Edge Firefox Internet Explorer Opera Safari Servo
Базовая поддержка32.0(Да)29.0Нет поддержки197.1Нет поддержки
Возможность Android Chrome for Android Edge Mobile Firefox for Android IE Mobile Opera Mobile Safari Mobile
Базовая поддержка4.4.432.0(Да)29Нет поддержки(Да)8.0

Смотри также

Метки документа и участники

 Внесли вклад в эту страницу: nudaworks, AlexKhram, ball00n
 Обновлялась последний раз: nudaworks,