首頁  >  文章  >  web前端  >  JavaScript 中的 Deferreds、Promise 和 Future 有什麼區別?

JavaScript 中的 Deferreds、Promise 和 Future 有什麼區別?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-23 20:00:30149瀏覽

What's the Distinction Between Deferreds, Promises, and Futures in JavaScript?

JavaScript 中 Deferreds、Promise 和 Future 的差異

在 JavaScript 中,deferreds、promise 和 futures 通常用於處理非同步操作。每個概念都有其獨特的一組特徵:

Deferreds

在正式文件中從未明確定義,deferreds 通常用作Promise 解析的仲裁者,實現解決和拒絕功能。它們也可以作為 Promise 實現,從而能夠使用 then 函數。

Promises

Promise 代表了此上下文中最全面的概念。它們封裝非同步操作的結果,公開接受另一個目標函數的 then 函數。 Promises/A 規範為 Promises 的行為設定了標準,解決了早期 Promises/A 規範中的歧義。

Futures

目前討論中較不常用的術語,futures 是指抽象同步性和錯誤處理而不提供 then 功能的代理對象。例如,FutureJS 一般使用該術語來實現此類目的。

主要差異

  • 解決責任: Deferred 負責解決Promises。
  • Thenability: Promise 總是實作 then 函數,而 futures 通常不會。
  • 共性: Deferreds 通常用於實現,而期貨則較不普遍。承諾是最廣泛使用的概念。

總之,雖然這些術語有時可以互換使用,但它們各自具有不同的特徵。 Deferreds 是 Promise 解析背後的驅動力,Promise 代表了非同步操作的整體策略,而 futures 是一個不太常用的抽象同步性術語。

以上是JavaScript 中的 Deferreds、Promise 和 Future 有什麼區別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn