aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/global_objects/promise/resolve/index.html
diff options
context:
space:
mode:
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.html137
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>