# es6-promise

> A lightweight library that provides tools for organizing asynchronous code

Latest version **4.2.8** (published 2019-06-06) · MIT license · 0 weekly downloads

## Install

```sh
npm install es6-promise
pnpm add es6-promise
yarn add es6-promise
bun add es6-promise
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 4.2.8 |
| Published | 2019-06-06 |
| First published | 2013-12-16 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 308 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 7249 |
| Author | Yehuda Katz, Tom Dale, Stefan Penner and contributors |
| Maintainers | jaffathecake, stefanpenner |
| Keywords | futures, polyfill, promise, promises |

## Links

- npm: https://www.npmjs.com/package/es6-promise
- Repository: https://github.com/stefanpenner/es6-promise
- Issues: https://github.com/stefanpenner/es6-promise/issues
- npm.io page: https://npm.io/package/es6-promise

## Alternatives

- [@commercetools/sync-actions](https://npm.io/package/@commercetools/sync-actions.md) — 25.1K weekly downloads
- [cwait](https://npm.io/package/cwait.md) — 21.4K weekly downloads
- [@ledgerhq/hw-app-cosmos](https://npm.io/package/@ledgerhq/hw-app-cosmos.md) — 4.2K weekly downloads
- [@financial-times/o-loading](https://npm.io/package/@financial-times/o-loading.md) — 2.8K weekly downloads
- [fa](https://npm.io/package/fa.md) — 185 weekly downloads

## Recent versions

- 4.2.8 (latest) — 2019-06-06
- 4.2.7 — 2019-06-06
- 4.2.6 — 2019-02-16
- 4.2.5 — 2018-09-10
- 4.2.4 — 2018-01-23
- 4.2.3 — 2018-01-23
- 4.2.2 — 2017-12-22
- 4.2.1 — 2017-12-21
- 4.2.0 — 2017-12-21
- 4.1.1 — 2017-06-28
- 4.1.0 — 2017-03-07
- 4.0.5 — 2016-10-04
- 4.0.4 — 2016-10-03
- 4.0.3 — 2016-09-27
- 4.0.2 — 2016-09-27
- … 19 more at https://npm.io/package/es6-promise/versions

## README

# 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)

This 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).

For API details and how to use promises, see the <a href="http://www.html5rocks.com/en/tutorials/es6/promises/">JavaScript Promises HTML5Rocks article</a>.

## Downloads

* [es6-promise 27.86 KB (7.33 KB gzipped)](https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.js)
* [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.
* [es6-promise-min 6.17 KB (2.4 KB gzipped)](https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.min.js)
* [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.

## CDN 

To use via a CDN include this in your html:

```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> 

```

## Node.js

To install:

```sh
yarn add es6-promise
```

or

```sh
npm install es6-promise
```

To use:

```js
var Promise = require('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:

```js
promise['catch'](function(err) {
  // ...
});
```

```js
promise['finally'](function() {
  // ...
});
```

## Auto-polyfill

To polyfill the global environment (either in Node or in the browser via CommonJS) use the following code snippet:

```js
require('es6-promise').polyfill();
```

Alternatively

```js
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 build` to build
* `npm test` to run tests
* `npm start` to run a build watcher, and webserver to test
* `npm run test:server` for a testem test runner and watching builder

---
_Source: https://npm.io/package/es6-promise · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
