aigle v1.14.1
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
async function getUsers(ids) {
const users = await Aigle.map(ids, getUser);
const targets = await Aigle.filter(users, filterUser);
return targets;
}
async function getUsers(ids) {
return await Aigle.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->eachLimitgroupBygroupBySeriesgroupByLimitmapmapSeriesmapLimitmapValuesmapValuesSeriesmapValuesLimitomitomitSeriesomitLimitpickpickSeriespickLimitreducereduceSeriesreduceLimitrejectrejectSeriesrejectLimitsomesomeSeriessomeLimitsortBysortBySeriessortByLimittransformtransformSeriestransformLimit
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.omitSeriesPromise.omitLimitPromise.pickPromise.pickSeriesPromise.pickLimitPromise.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
Utils
prototype functions
class functions
Debug
class functions
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago