Package Exports
- aigle
- aigle/each
- aigle/eachSeries
- aigle/forEach
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (aigle) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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.
Usage
Node.js
npm install --save aigleconst Aigle = require('aigle');const each = require('aigle/each');TypeScript
import Aigle from 'aigle';import { Aigle } from 'aigle';Async/Await
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);
}Convert synchronous functions to asynchronous functions
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];browser
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;Functions
Core
prototype functions
class functions
Collections
prototype functions
concatconcatSeriesconcatLimiteacheachSerieseachLimiteveryeverySerieseveryLimitfilterfilterSeriesfilterLimitfindfindSeriesfindLimitfindIndexfindIndexSeriesfindIndexLimitfindKeyfindKeySeriesfindKeyLimitforEach->eachforEachSeries->eachSeriesforEachLimit->eachLimitgroupBygroupBySeriesgroupByLimitmapmapSeriesmapLimitmapValuesmapValuesSeriesmapValuesLimitomitomitSeries->omitBySeriesomitLimit->omitByLimitomitByomitBySeriesomitByLimitpickpickSeries->pickBySeriespickLimit->pickByLimitpickBypickBySeriespickByLimitreducereduceSeriesreduceLimitrejectrejectSeriesrejectLimitsomesomeSeriessomeLimitsortBysortBySeriessortByLimittransformtransformSeriestransformLimit
class functions
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
Control flow
prototype functions
class functions
Promise.allPromise.doUntilPromise.doWhilstPromise.parallelPromise.propsPromise.racePromise.retryPromise.timesPromise.timesSeriesPromise.timesLimitPromise.untilPromise.whilst