簡體   English   中英

ES5 與 ES6 承諾

[英]ES5 vs ES6 Promises

我想知道 JS 承諾是否是 ES5 的一部分? 如果是這樣,為什么它有時在舊瀏覽器中不起作用,我們必須為它們添加一個 polyfill。 另外,在這種情況下應該添加哪個 polyfill,是 ES5 還是 ES6? 我對此有點困惑。

ES5 沒有承諾。 像 jQuery 或 Angular 這樣的庫有自己的自定義和非標准 promise 實現。

與 ES5 一起使用的流行 Promise 實現是 Bluebird(與 ES6 標准兼容)和 Q(最初與 ES6 標准不兼容——盡管似乎正在朝着這個方向發展)和 RSVP。

實際的 polyfill 也不是,因為如果存在原生承諾,它們不會讓步,因為它們添加了額外的功能。

ES6 承諾有一些純 polyfill。 這是 RSVP 的一個子集: https : //github.com/stefanpenner/es6-promise

正如您在此處閱讀的那樣, 除了使用 polyfill 之外,還有理由使用現在我們有了 ES6 承諾,是否還有理由使用 Q 或 BlueBird 等承諾庫?

在 Stack Overflow 上要求推薦一個特定的 polyfill 庫被認為是題外話,所以我不會對此發表評論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM