Aigle is an ideal promise library which is faster and more efficient than other libraries. On top of being an impressive benchmark exercise, it is a production-ready library that implements the Promise A+ standard.
Also it has a lot of async style functions, you can start using Promise
easily.
npm install --save aigle
const Aigle = require('aigle');
const each = require('aigle/each');
import Aigle from 'aigle';
import { Aigle } from 'aigle';
global.Promise = Aigle;
async function getUsers(ids) {
const users = await Promise.map(ids, getUser);
const targets = await Promise.filter(users, filterUser);
return targets;
}
async function getUsers(ids) {
return await Promise.map(ids, getUser).filter(filterUser);
}
Aigle.mixin(require('lodash'));
return Aigle.map([1.1, 1.4, 2.2], (n) => Aigle.delay(10, n * 2)) // [2.2, 2.8, 4.4]
.uniqBy((n) => Aigle.delay(10, Math.floor(n))) // [2.2, 4.4]
.sum() // 6.6
.times() // [0, 1, 2, 3, 4, 5];
.then((value) => console.log(value)); // [0, 1, 2, 3, 4, 5];
Recommend to use webpack, browserify, Rollup or any bundling tool.
or prebuilt scripts from here.
This will expose to global as window.Promise
.
<script src="dist/aigle.min.js"></script>
window.Promise;
concat
concatSeries
concatLimit
each
eachSeries
eachLimit
every
everySeries
everyLimit
filter
filterSeries
filterLimit
find
findSeries
findLimit
findIndex
findIndexSeries
findIndexLimit
findKey
findKeySeries
findKeyLimit
forEach
->each
forEachSeries
->eachSeries
forEachLimit
->eachLimit
groupBy
groupBySeries
groupByLimit
map
mapSeries
mapLimit
mapValues
mapValuesSeries
mapValuesLimit
omit
omitSeries
->omitBySeries
omitLimit
->omitByLimit
omitBy
omitBySeries
omitByLimit
pick
pickSeries
->pickBySeries
pickLimit
->pickByLimit
pickBy
pickBySeries
pickByLimit
reduce
reduceSeries
reduceLimit
reject
rejectSeries
rejectLimit
some
someSeries
someLimit
sortBy
sortBySeries
sortByLimit
transform
transformSeries
transformLimit
Promise.concat
Promise.concatSeries
Promise.concatLimit
Promise.each
Promise.eachSeries
Promise.eachLimit
Promise.every
Promise.everySeries
Promise.everyLimit
Promise.filter
Promise.filterSeries
Promise.filterLimit
Promise.find
Promise.findSeries
Promise.findLimit
Promise.findIndex
Promise.findIndexSeries
Promise.findIndexLimit
Promise.findKey
Promise.findKeySeries
Promise.findKeyLimit
Promise.forEach
->Promise.each
Promise.forEachSeries
->Promise.eachSeries
Promise.forEachLimit
->Promise.eachLimit
Promise.groupBy
Promise.groupBySeries
Promise.groupByLimit
Promise.map
Promise.mapSeries
Promise.mapLimit
Promise.mapValues
Promise.mapValuesSeries
Promise.mapValuesLimit
Promise.omit
Promise.omitSeries
->Promise.omitBySeries
Promise.omitLimit
->Promise.omitByLimit
Promise.omitBy
Promise.omitBySeries
Promise.omitByLimit
Promise.pick
Promise.pickSeries
->Promise.pickBySeries
Promise.pickLimit
->Promise.pickByLimit
Promise.pickBy
Promise.pickBySeries
Promise.pickByLimit
Promise.reduce
Promise.reduceSeries
Promise.reduceLimit
Promise.reject
Promise.rejectSeries
Promise.rejectLimit
Promise.some
Promise.someSeries
Promise.someLimit
Promise.sortBy
Promise.sortBySeries
Promise.sortByLimit
Promise.transform
Promise.transformSeries
Promise.transformLimit