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 aigleconst 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;concatconcatSeriesconcatLimiteacheachSerieseachLimiteveryeverySerieseveryLimitfilterfilterSeriesfilterLimitfindfindSeriesfindLimitfindIndexfindIndexSeriesfindIndexLimitfindKeyfindKeySeriesfindKeyLimitforEach->eachforEachSeries->eachSeriesforEachLimit->eachLimitgroupBygroupBySeriesgroupByLimitmapmapSeriesmapLimitmapValuesmapValuesSeriesmapValuesLimitomitomitSeries->omitBySeriesomitLimit->omitByLimitomitByomitBySeriesomitByLimitpickpickSeries->pickBySeriespickLimit->pickByLimitpickBypickBySeriespickByLimitreducereduceSeriesreduceLimitrejectrejectSeriesrejectLimitsomesomeSeriessomeLimitsortBysortBySeriessortByLimittransformtransformSeriestransformLimit
Promise.concatPromise.concatSeriesPromise.concatLimitPromise.eachPromise.eachSeriesPromise.eachLimitPromise.everyPromise.everySeriesPromise.everyLimitPromise.filterPromise.filterSeriesPromise.filterLimitPromise.findPromise.findSeriesPromise.findLimitPromise.findIndexPromise.findIndexSeriesPromise.findIndexLimitPromise.findKeyPromise.findKeySeriesPromise.findKeyLimitPromise.forEach->Promise.eachPromise.forEachSeries->Promise.eachSeriesPromise.forEachLimit->Promise.eachLimitPromise.groupByPromise.groupBySeriesPromise.groupByLimitPromise.mapPromise.mapSeriesPromise.mapLimitPromise.mapValuesPromise.mapValuesSeriesPromise.mapValuesLimitPromise.omitPromise.omitSeries->Promise.omitBySeriesPromise.omitLimit->Promise.omitByLimitPromise.omitByPromise.omitBySeriesPromise.omitByLimitPromise.pickPromise.pickSeries->Promise.pickBySeriesPromise.pickLimit->Promise.pickByLimitPromise.pickByPromise.pickBySeriesPromise.pickByLimitPromise.reducePromise.reduceSeriesPromise.reduceLimitPromise.rejectPromise.rejectSeriesPromise.rejectLimitPromise.somePromise.someSeriesPromise.someLimitPromise.sortByPromise.sortBySeriesPromise.sortByLimitPromise.transformPromise.transformSeriesPromise.transformLimit