diff options
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/promise/finally/index.html')
-rw-r--r-- | files/uk/web/javascript/reference/global_objects/promise/finally/index.html | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/promise/finally/index.html b/files/uk/web/javascript/reference/global_objects/promise/finally/index.html deleted file mode 100644 index f67c7fb1e3..0000000000 --- a/files/uk/web/javascript/reference/global_objects/promise/finally/index.html +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: Promise.prototype.finally() -slug: Web/JavaScript/Reference/Global_Objects/Promise/finally -tags: - - JavaScript - - Promise - - finally - - метод -translation_of: Web/JavaScript/Reference/Global_Objects/Promise/finally ---- -<div>{{JSRef}}</div> - -<p>Метод <code><strong>finally()</strong></code> вертає {{jsxref("Promise")}}. Коли проміс встановлено, тобто, або виконано, або відхилено, виконується вказана функція зворотного виклику. Це надає можливість виконати код незалежно від того, чи був проміс успішно виконаний, чи відхилений, як тільки проміс було оброблено.</p> - -<p>Це допомагає уникати дублювання коду у обробниках проміса {{jsxref("Promise.then", "then()")}} та {{jsxref("Promise.catch", "catch()")}}.</p> - -<h2 id="Синтаксис">Синтаксис</h2> - -<pre class="syntaxbox"><var>p.finally(onFinally)</var>; - -p.finally(function() { - // встановлений (виконаний або відхилений) -}); -</pre> - -<h3 id="Параметри">Параметри</h3> - -<dl> - <dt><code>onFinally</code></dt> - <dd>{{jsxref("Function", "Функція")}}, що викликається, коли <code>Promise</code> встановлений.</dd> -</dl> - -<h3 id="Значення_що_повертається">Значення, що повертається</h3> - -<p>Вертає {{jsxref("Promise","проміс")}}, чиєму обробнику <code>finally</code> присвоєна вказана функція <code>onFinally</code>.</p> - -<h2 id="Опис">Опис</h2> - -<p>Метод <code>finally()</code> може бути корисним, якщо ви хочете виконати певну обробку або прибирання, як тільки проміс встановлено, незалежно від результату.</p> - -<p>Метод <code>finally()</code> дуже схожий на виклик <code>.then(onFinally, onFinally)</code>, але є пара відмінностей:</p> - -<ul> - <li>Створюючи вбудовану функцію, ви можете передати її один раз, замість того, щоб або оголошувати її двічі, або створювати для неї змінну</li> - <li>Зворотній виклик <code>finally</code> не отримує жодних аргументів, оскільки не існує надійних методів визначити, чи був проміс виконаний, чи відхилений. Цей випадок використання розрахований саме на те, що вам <em>неважлива</em> причина відхилення чи повернене значення, і тому немає необхідності їх надавати. Отже, для прикладу: - <ul> - <li>На відміну від <code>Promise.resolve(2).then(() => {}, () => {})</code> (який буде вирішений з <code>undefined</code>), <code>Promise.resolve(2).finally(() => {})</code> буде вирішений з <code>2</code>.</li> - <li>Також, на відміну від <code>Promise.reject(3).then(() => {}, () => {})</code> (який буде виконаний з <code>undefined</code>), <code>Promise.reject(3).finally(() => {})</code> буде відхилений з <code>3</code>.</li> - </ul> - </li> -</ul> - -<div class="note"> -<p><strong>Заувага:</strong> <code>throw</code> (або повернення відхиленого проміса) у зворотному виклику <code>finally</code> відхилить новий проміс з причиною відхилення, вказаною у виклику <code>throw</code>.</p> -</div> - -<h2 id="Приклади">Приклади</h2> - -<pre class="brush: js">let isLoading = true; - -fetch(myRequest).then(function(response) { - var contentType = response.headers.get("content-type"); - if(contentType && contentType.includes("application/json")) { - return response.json(); - } - throw new TypeError("От халепа, немає JSON!"); - }) - .then(function(json) { /* обробити JSON далі */ }) - .catch(function(error) { console.error(error); /* цей рядок може викинути помилку, наприклад, якщо console = {} */ }) - .finally(function() { isLoading = false; }); - -</pre> - -<div class="hidden"> -<p>Будь ласка, не додавайте поліфіли у статті MDN. Більше інформації дивіться за посиланням: <a href="https://discourse.mozilla.org/t/mdn-rfc-001-mdn-wiki-pages-shouldnt-be-a-distributor-of-polyfills/24500">https://discourse.mozilla.org/t/mdn-rfc-001-mdn-wiki-pages-shouldnt-be-a-distributor-of-polyfills/24500</a></p> -</div> - -<h2 id="Специфікації">Специфікації</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Специфікація</th> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-promise.prototype.finally', 'Promise.prototype.finally')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2> - -<p class="hidden">To contribute to this compatibility data, please write a pull request against this repository: <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</p> - -<p>{{Compat("javascript.builtins.Promise.finally")}}</p> - -<h2 id="Див._також">Див. також</h2> - -<ul> - <li>{{jsxref("Promise")}}</li> - <li>{{jsxref("Promise.prototype.then()")}}</li> - <li>{{jsxref("Promise.prototype.catch()")}}</li> -</ul> |