Package Exports
- es6-promise-polyfill
- es6-promise-polyfill/package.json
- es6-promise-polyfill/promise
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (es6-promise-polyfill) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ES6 Promise polyfill
This is a polyfill of ES6 Promise. The implementation based on Jake Archibald implementation a subset of rsvp.js. If you're wanting extra features and more debugging options, check out the full library.
For API details and how to use promises, see the JavaScript Promises HTML5Rocks article.
Notes
The main target: implementation should be conformance with browser's implementations and to be minimal as possible in size. So it's strictly polyfill of ES6 Promise specification and nothing more.
It passes both Promises/A+ test suite and rsvp.js test suite. And as small as 2,6KB min (or 1KB min+gzip).
The polyfill uses setImmediate if available, or fallback to use setTimeout. Use setImmediate polyfill by @YuzuJS to reach better performance.
How to use
Browser
To install:
bower install es6-promise-polyfillTo use:
<script src="bower_components/es6-promise-polyfill/promise.min.js"></script>
<script>
var promise = new Promise(...);
</script>Node.js
To install:
npm install es6-promise-polyfillTo use:
var Promise = require('es6-promise-polyfill').Promise;
var promise = new Promise(...);Usage in IE<9
catch is a reserved word in IE<9, meaning promise.catch(func) throws a syntax error. To work around this, use a string to access the property:
promise['catch'](function(err) {
// ...
});Or use .then instead:
promise.then(undefined, function(err) {
// ...
});License
Licensed under the MIT License.