diff options
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/promise/resolve/index.html')
| -rw-r--r-- | files/uk/web/javascript/reference/global_objects/promise/resolve/index.html | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/promise/resolve/index.html b/files/uk/web/javascript/reference/global_objects/promise/resolve/index.html new file mode 100644 index 0000000000..88aeba5465 --- /dev/null +++ b/files/uk/web/javascript/reference/global_objects/promise/resolve/index.html @@ -0,0 +1,137 @@ +--- +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 +--- +<div>{{JSRef}}</div> + +<p>Метод <code><strong>Promise.resolve()</strong></code> повертає об'єкт {{jsxref("Promise")}}, вирішений з наданим значенням. Якщо значенням є проміс, то цей проміс буде повернено; якщо значенням є промісоподібний об'єкт (thenable) (такий, що має {{jsxref("Promise.then", "метод \"then\"")}}), то повернений проміс буде його "дотримуватись", приймаючи його кінцевий стан; у іншому випадку повернений проміс буде виконаний з наданим значенням. Функція вирівнює вкладені шари промісоподібних об'єктів (наприклад, проміс, що вирішується з промісом, який вирішується з чимось ще) у єдиний шар.</p> + +<h2 id="Синтаксис">Синтаксис</h2> + +<pre class="syntaxbox"><var>Promise.resolve(value)</var>; +</pre> + +<h3 id="Параметри">Параметри</h3> + +<dl> + <dt>value</dt> + <dd>Аргумент, з яким буде вирішений даний <code>Promise</code>. Також він може бути промісом або промісоподібним об'єктом.</dd> +</dl> + +<h3 id="Значення_яке_повертається">Значення, яке повертається</h3> + +<p>Об'єкт {{jsxref("Promise")}}, вирішений з наданим значенням, або проміс, переданий в якості значення, якщо значення було промісом.</p> + +<h2 id="Опис">Опис</h2> + +<p>Статична функція <code>Promise.resolve</code> повертає вирішений об'єкт <code>Promise</code>.</p> + +<h2 id="Приклади">Приклади</h2> + +<h3 id="Використання_статичного_методу_Promise.resolve">Використання статичного методу <code>Promise.resolve</code></h3> + +<pre class="brush: js">Promise.resolve('Success').then(function(value) { + console.log(value); // "Успіх" +}, function(value) { + // не викликається +}); +</pre> + +<h3 id="Вирішення_проміса_масивом">Вирішення проміса масивом</h3> + +<pre class="brush: js">var p = Promise.resolve([1,2,3]); +p.then(function(v) { + console.log(v[0]); // 1 +}); +</pre> + +<h3 id="Вирішення_проміса_іншим_промісом">Вирішення проміса іншим промісом</h3> + +<pre class="brush: js">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</pre> + +<p>Перевернутий порядок логів спричинений тим фактом, що обробники <code>then</code> викликаються асинхронно. Дивіться, як працює <code>then</code> <a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/Promise/then#Значення_що_повертається">тут</a>.</p> + +<h3 id="Вирішення_промісоподібних_обєктів_та_викидання_помилок">Вирішення промісоподібних об'єктів та викидання помилок</h3> + +<pre class="brush: js">// Вирішення промісоподібного об'єкта +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) { + // не викликається +}); +</pre> + +<h2 id="Специфікації">Специфікації</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Специфікація</th> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-promise.resolve', 'Promise.resolve')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2> + +<p class="hidden">To contribute to this compatibility data, please write a pull request against this file: <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</p> + +<p>{{Compat("javascript.builtins.Promise.resolve")}}</p> + +<h2 id="Дивіться_також">Дивіться також</h2> + +<ul> + <li>{{jsxref("Promise")}}</li> +</ul> |
