A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Promise/finally below:

Promise.prototype.finally() - JavaScript | MDN

Promise.prototype.finally()

Baseline Widely available

finally() 方法會回傳一個 Promise。當 promise 被 settled 後,無論其結果是 fulfilled 還是 rejected ,都會執行指定的回呼函數。它提供了一個讓 Promise 在被確認後,無論是 fulfilled 或是 rejected 都會執行某些程式碼的一種手段。

這樣可以避免你在 promise 的 then() 和 catch() 重複處理相同的程式碼。

Syntax
p.finally(onFinally);

p.finally(function () {
  // settled(fulfilled 或 rejected)
});
Parameters
onFinally

當 Promise settled 後呼叫的 Function。

Return value

回傳 Promise 當 finally 的處理函數 onFinally 被指定時。

Description

當你希望在 promise settled 後且不關心它的結果為何時,執行一些處理或清理的工作, finally() 方法會很有幫助。

finally() 方法非常類似於 .then(onFinally, onFinally) 的呼叫方式,但仍有一些差異:

備註: 在 finally 回呼中使用 throw(或回傳 rejected promise)會導致新的 promise 被 reject,reject 的原因則是呼叫 throw() 時所指定的值。

範例
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("Oops, we haven't got JSON!");
  })
  .then(function (json) {
    /* process your JSON further */
  })
  .catch(function (error) {
    console.log(error);
  })
  .finally(function () {
    isLoading = false;
  });
規範 瀏覽器相容性 參見

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4