epiphany/node_modules/any-promise/README.md

38 lines
1.4 KiB
Markdown
Raw Normal View History

2023-12-09 22:19:03 -08:00
## Any Promise
[![Build Status](https://secure.travis-ci.org/kevinbeaty/any-promise.svg)](http://travis-ci.org/kevinbeaty/any-promise)
Let your library support any ES6 compatible Promise library or polyfill and leave the choice to the end user. The end user can install a polyfill or `npm install` their preference before using this library and the installed library will be automatically detected.
Attempts to load libraries in the following order. The first successful `require` will be exported.
- [es6-promise](https://github.com/jakearchibald/es6-promise)
- [promise](https://github.com/then/promise)
- [native-promise-only](https://github.com/getify/native-promise-only)
- [bluebird](https://github.com/petkaantonov/bluebird)
- [rsvp](https://github.com/tildeio/rsvp.js)
- [when](https://github.com/cujojs/when)
- [q](https://github.com/kriskowal/q)
If no library is installed, attempts to export the global `Promise` (native or polyfill). The `browserify` version will always export the the global `Promise`, so polyfill as necessary.
If you have multiple libraries installed (e.g. for testing), and would like to specify one you can use the `PROMISE_IMPL` env variable.
```javascript
var Promise = require('any-promise');
return Promise
.all([xf, f, init, coll])
.then(fn);
return new Promise(function(resolve, reject){
try {
resolve(item);
} catch(e){
reject(e);
}
});
```