A polyfill for ES6-style Promises
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.
Promiseif missing or broken.
es6-promise-autoabove.
To use via a CDN include this in your html:
To install:
yarn add es6-promise
or
npm install es6-promise
To use:
var Promise = require('es6-promise').Promise;
catchand
finallyare reserved keywords in IE<9, meaning
promise.catch(func)or
promise.finally(func)throw a syntax error. To work around this, you can use a string to access the property as shown in the following example.
However most minifiers will automatically fix this for you, making the resulting code safe for old browsers and production:
promise['catch'](function(err) { // ... });
promise['finally'](function() { // ... });
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
Promisename) when called.
You will need to have PhantomJS installed globally in order to run the tests.
npm install -g phantomjs
npm run buildto build
npm testto run tests
npm startto run a build watcher, and webserver to test
npm run test:serverfor a testem test runner and watching builder