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

Метод Promise.resolve(value) повертає об'єкт Promise, що вирішується з заданим значенням. Якщо дане значення дозволяє на собі викликати метод then (thenable) (тобто має "then" method), то проміс, який буде повертатися, буде дозволяти викликати на собі метод then, і буде встановлювати свій остаточний стан; у іншому випадку проміс, який буде повертатися буде завершено з даним значенням.

Синтаксис

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

Параметри

value
Аргумент, з яким буде виконано даний Проміс (Promise). Також він може бути Промісом (Promise) або об'єктом, з можливістю викликати на собі метод then для вирішення.

Значення, яке повертається

Promise який вирішується з заданим значенням.

Опис

Статична функція Promise.resolve повертає Promise, який є вирішеним.

Приклади

Використання статичного методу Promise.resolve

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

Вирішення проміса масивом

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

Вирішення проміса іншим промісом

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

Вирішення об'єктів, які дозволяють на собі викликати метод then і кидання помилок

// Вирішення об'єкта з можливістю викликати на собі метод then
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 кидає помилку перед функцією callback
// Проміс відхиляється
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: Помилка
});

// Об'єкт thenable кидає помилку після функції callback
// Проміс вирішується
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) {
  // не викликається
});

Специфікації

Специфікація Статус Коментар
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Promise.resolve' in that specification.
Standard Початкове визначення в стандарті ECMA.
ECMAScript 2017 Draft (ECMA-262)
The definition of 'Promise.resolve' in that specification.
Draft  

Сумісність із браузерами

Feature Chrome Edge Firefox Internet Explorer Opera Safari Servo
Basic Support32.0(Yes)29.0No support197.1No support
Feature Android Chrome for Android Edge Mobile Firefox for Android IE Mobile Opera Mobile Safari Mobile
Basic Support4.4.432.0(Yes)29No support(Yes)8.0

Дивитися також

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

 Зробили внесок у цю сторінку: piton13
 Востаннє оновлена: piton13,