ES6-Promise (subset of rsvp.js)
This is a polyfill of the ES6 Promise. The implementation is a subset of rsvp.js extracted by @jakearchibald, 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.
- es6-promise 27.86 KB (7.33 KB gzipped)
- es6-promise-auto 27.78 KB (7.3 KB gzipped) - Automatically provides/replaces
Promise
if missing or broken. - es6-promise-min 6.17 KB (2.4 KB gzipped)
- es6-promise-auto-min 6.19 KB (2.4 KB gzipped) - Minified version of
es6-promise-auto
above.
To use via a CDN include this in your html:
<!-- Automatically provides/replaces `Promise` if missing or broken. -->
<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>
<!-- Minified version of `es6-promise-auto` below. -->
<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>
To install:
npm install es6-promise
To use:
var Promise = require('es6-promise').Promise;
To install:
bower install es6-promise --save
catch
is a reserved word in IE<9, meaning promise.catch(func)
throws a syntax error. To work around this, you can use a string to access the property as shown in the following example.
However, please remember that such technique is already provided by most common minifiers, making the resulting code safe for old browsers and production:
promise['catch'](function(err) {
// ...
});
Or use .then
instead:
promise.then(undefined, function(err) {
// ...
});
To polyfill the global environment (either in Node or in the browser via CommonJS) use the following code snippet:
require('es6-promise').polyfill();
Alternatively
require('es6-promise/auto');
Notice that we don't assign the result of polyfill()
to any variable. The polyfill()
method will patch the global environment (in this case to the Promise
name) when called.
You will need to have PhantomJS installed globally in order to run the tests.
npm install -g phantomjs
npm run build
to buildnpm test
to run testsnpm start
to run a build watcher, and webserver to testnpm run test:server
for a testem test runner and watching builder