--- title: Promise.resolve() slug: Web/JavaScript/Reference/Global_Objects/Promise/resolve tags: - ECMAScript 2015 - JavaScript - Method - Promise - Проміс - метод translation_of: Web/JavaScript/Reference/Global_Objects/Promise/resolve ---
Метод Promise.resolve()
повертає об'єкт {{jsxref("Promise")}}, вирішений з наданим значенням. Якщо значенням є проміс, то цей проміс буде повернено; якщо значенням є промісоподібний об'єкт (thenable) (такий, що має {{jsxref("Promise.then", "метод \"then\"")}}), то повернений проміс буде його "дотримуватись", приймаючи його кінцевий стан; у іншому випадку повернений проміс буде виконаний з наданим значенням. Функція вирівнює вкладені шари промісоподібних об'єктів (наприклад, проміс, що вирішується з промісом, який вирішується з чимось ще) у єдиний шар.
Promise.resolve(value);
Promise
. Також він може бути промісом або промісоподібним об'єктом.Об'єкт {{jsxref("Promise")}}, вирішений з наданим значенням, або проміс, переданий в якості значення, якщо значення було промісом.
Статична функція Promise.resolve
повертає вирішений об'єкт Promise
.
Promise.resolve
Promise.resolve('Success').then(function(value) { console.log(value); // "Успіх" }, function(value) { // не викликається });
var p = Promise.resolve([1,2,3]); p.then(function(v) { console.log(v[0]); // 1 });
var original = Promise.resolve(33); var cast = Promise.resolve(original); cast.then(function(value) { console.log('значення: ' + value); }); console.log('original === cast ? ' + (original === cast)); // порядок виведення: // original === cast ? true // значення: 33
Перевернутий порядок логів спричинений тим фактом, що обробники then
викликаються асинхронно. Дивіться, як працює then
тут.
// Вирішення промісоподібного об'єкта var p1 = Promise.resolve({ then: function(onFulfill, onReject) { onFulfill('виконаний!'); } }); console.log(p1 instanceof Promise) // true, об'єкт передано у проміс p1.then(function(v) { console.log(v); // "виконаний!" }, function(e) { // не викликається }); // Промісоподібний об'єкт викидає помилку перед зворотнім викликом // Проміс відхиляється var thenable = { then: function(resolve) { throw new TypeError('Помилка'); resolve('Вирішення'); }}; var p2 = Promise.resolve(thenable); p2.then(function(v) { // не викликається }, function(e) { console.log(e); // TypeError: Помилка }); // Промісоподібний об'єкт викидає помилку після зворотного виклику // Проміс вирішується var thenable = { then: function(resolve) { resolve('Вирішення'); throw new TypeError('Помилка'); }}; var p3 = Promise.resolve(thenable); p3.then(function(v) { console.log(v); // "Вирішення" }, function(e) { // не викликається });
Специфікація |
---|
{{SpecName('ESDraft', '#sec-promise.resolve', 'Promise.resolve')}} |
To contribute to this compatibility data, please write a pull request against this file: https://github.com/mdn/browser-compat-data.
{{Compat("javascript.builtins.Promise.resolve")}}