这是 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