aigle
aigle copied to clipboard
🦅 Aigle is an ideal promise library which is faster and more efficient than other libraries. It is a production-ready library that implements the Promise A+ standard.
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 aigle
const 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
-
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
class functions
-
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
Control flow
prototype functions
class functions
-
Promise.all
-
Promise.doUntil
-
Promise.doWhilst
-
Promise.parallel
-
Promise.props
-
Promise.race
-
Promise.retry
-
Promise.times
-
Promise.timesSeries
-
Promise.timesLimit
-
Promise.until
-
Promise.whilst