1.15.0-alpha.3 • Published 2 years ago
@rhino.fi/aigle v1.15.0-alpha.3
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
- 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