Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | - | - | ||||
dist/ | 12-May-2024 | - | 2,358 | 1,051 | ||
lib/ | 12-May-2024 | - | 1,258 | 577 | ||
CHANGELOG.md | D | 12-May-2024 | 3.5 KiB | 156 | 98 | |
LICENSE | D | 12-May-2024 | 1.1 KiB | 20 | 16 | |
README.md | D | 12-May-2024 | 3.2 KiB | 98 | 65 | |
auto.js | D | 12-May-2024 | 179 | 5 | 2 | |
es6-promise.d.ts | D | 12-May-2024 | 5.2 KiB | 86 | 27 | |
package.json | D | 12-May-2024 | 3.3 KiB | 107 | 106 |
README.md
1# ES6-Promise (subset of [rsvp.js](https://github.com/tildeio/rsvp.js)) [![Build Status](https://travis-ci.org/stefanpenner/es6-promise.svg?branch=master)](https://travis-ci.org/stefanpenner/es6-promise) 2 3This is a polyfill of the [ES6 Promise](http://www.ecma-international.org/ecma-262/6.0/#sec-promise-constructor). The implementation is a subset of [rsvp.js](https://github.com/tildeio/rsvp.js) extracted by @jakearchibald, if you're wanting extra features and more debugging options, check out the [full library](https://github.com/tildeio/rsvp.js). 4 5For API details and how to use promises, see the <a href="http://www.html5rocks.com/en/tutorials/es6/promises/">JavaScript Promises HTML5Rocks article</a>. 6 7## Downloads 8 9* [es6-promise 27.86 KB (7.33 KB gzipped)](https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.js) 10* [es6-promise-auto 27.78 KB (7.3 KB gzipped)](https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.auto.js) - Automatically provides/replaces `Promise` if missing or broken. 11* [es6-promise-min 6.17 KB (2.4 KB gzipped)](https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.min.js) 12* [es6-promise-auto-min 6.19 KB (2.4 KB gzipped)](https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.auto.min.js) - Minified version of `es6-promise-auto` above. 13 14## CDN 15 16To use via a CDN include this in your html: 17 18```html 19<!-- Automatically provides/replaces `Promise` if missing or broken. --> 20<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.js"></script> 21<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.js"></script> 22 23<!-- Minified version of `es6-promise-auto` below. --> 24<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.min.js"></script> 25<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.min.js"></script> 26 27``` 28 29## Node.js 30 31To install: 32 33```sh 34yarn add es6-promise 35``` 36 37or 38 39```sh 40npm install es6-promise 41``` 42 43To use: 44 45```js 46var Promise = require('es6-promise').Promise; 47``` 48 49 50## Usage in IE<9 51 52`catch` and `finally` are reserved keywords in IE<9, meaning 53`promise.catch(func)` or `promise.finally(func)` throw a syntax error. To work 54around this, you can use a string to access the property as shown in the 55following example. 56 57However most minifiers will automatically fix this for you, making the 58resulting code safe for old browsers and production: 59 60```js 61promise['catch'](function(err) { 62 // ... 63}); 64``` 65 66```js 67promise['finally'](function() { 68 // ... 69}); 70``` 71 72## Auto-polyfill 73 74To polyfill the global environment (either in Node or in the browser via CommonJS) use the following code snippet: 75 76```js 77require('es6-promise').polyfill(); 78``` 79 80Alternatively 81 82```js 83require('es6-promise/auto'); 84``` 85 86Notice 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. 87 88## Building & Testing 89 90You will need to have PhantomJS installed globally in order to run the tests. 91 92`npm install -g phantomjs` 93 94* `npm run build` to build 95* `npm test` to run tests 96* `npm start` to run a build watcher, and webserver to test 97* `npm run test:server` for a testem test runner and watching builder 98