@stackline/es6-promise
A lightweight library that provides tools for organizing asynchronous code.
Documentation | npm | Issues | Repository
Current package version: 1.0.2
Why this package?
@stackline/es6-promise is the Stackline-maintained distribution of es6-promise@4.2.8. It is an independent continuation of es6-promise; original authors and licenses remain credited below.
Compatibility
| Item | Value |
|---|---|
| Package | @stackline/es6-promise@1.0.2 |
| API target | es6-promise@4.2.8 |
| Supported Node.js | See supported framework requirements |
| License | MIT |
| Main entry | dist/es6-promise.js |
| Types | es6-promise.d.ts |
| Runtime dependencies | none |
Installation
npm install @stackline/es6-promise
Preserve existing imports and plugin resolution with an npm alias:
npm install es6-promise@npm:@stackline/es6-promise
Usage and API reference
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.
Downloads
- es6-promise 27.86 KB (7.33 KB gzipped)
- es6-promise-auto 27.78 KB (7.3 KB gzipped) - Automatically provides/replaces
Promiseif 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-autoabove.
CDN
To use via a CDN include this in your html:
<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>
<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>
Node.js
To install:
yarn add @stackline/es6-promise
or
npm install @stackline/es6-promise
To use:
var Promise = require('@stackline/es6-promise').Promise;
Usage in IE<9
catch and finally are 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() {
// ...
});
Auto-polyfill
To polyfill the global environment (either in Node or in the browser via CommonJS) use the following code snippet:
require('@stackline/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.
Building & Testing
You will need to have PhantomJS installed globally in order to run the tests.
npm install -g phantomjs
npm run buildto buildnpm testto run testsnpm startto run a build watcher, and webserver to testnpm run test:serverfor a testem test runner and watching builder
Credits and original authors
- Original project: es6-promise.
- Yehuda Katz, Tom Dale, Stefan Penner and contributors.
- Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors.
- Stackline maintenance: Alexandro Paixao Marques and Stackline contributors.
Original copyright, license notices and contributor acknowledgements remain part of this distribution. Stackline maintenance does not replace authorship of the original work.
License
MIT. See the license and notice files in the repository.
Community and Links
Use this repository's issue tracker for reproducible bugs and feature requests. Join r/Stackline for examples, usage questions and release discussions.