這是 ES6 Promise 的 polyfill。實作是 @jakearchibald 提取的 rsvp.js 的子集,如果您想要額外的功能和更多偵錯選項,請查看完整的程式庫。
有關 API 詳細資訊以及如何使用 Promises,請參閱 JavaScript Promises HTML5Rocks 文章。
es6-promise 27.86 KB(gzip 後為 7.33 KB)
es6-promise-auto 27.78 KB (gzipped 7.3 KB) - 如果Promise
遺失或損壞,則自動提供/替換。
es6-promise-min 6.17 KB(壓縮後為 2.4 KB)
es6-promise-auto-min 6.19 KB (gzipped 2.4 KB) - 上述es6-promise-auto
的縮小版本。
若要透過 CDN 使用,請將其包含在您的 html 中:
<!-- 若遺失或損壞,請自動提供/替換「Promise」。 --><script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.js"></script><script src="https://cdn. jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.js"></script> <!-- 下面`es6-promise-auto`的縮小版本。 --><script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.min.js"></script><script src="https:// cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.min.js"></script>
安裝:
紗線添加 es6-promise
或者
npm 安裝 es6-promise
使用方法:
var Promise = require('es6-promise').Promise;
catch
和finally
是IE<9 中的保留關鍵字,表示promise.catch(func)
或promise.finally(func)
會拋出語法錯誤。要解決此問題,您可以使用字串來存取該屬性,如下列範例所示。
然而,大多數壓縮器會自動為您修復此問題,從而使生成的程式碼對於舊瀏覽器和生產環境來說是安全的:
承諾['catch'](函數(錯誤){ // ...});
承諾['最後'](函數() { // ...});
若要填入全域環境(在 Node 中或透過 CommonJS 在瀏覽器中),請使用下列程式碼片段:
require('es6-promise').polyfill();
或者
需要('es6-promise/auto');
請注意,我們沒有將polyfill()
的結果分配給任何變數。呼叫時, polyfill()
方法將修補全域環境(在本例中為Promise
名稱)。
您需要全域安裝 PhantomJS 才能執行測試。
npm install -g phantomjs
npm run build
來構建
npm test
運行測試
npm start
運行建置觀察程序,並使用網頁伺服器進行測試
npm run test:server