Methods
all(array) → {Aigle}
Aigle.all is almost the same functionality as Promise.all.
It will return an Aigle instance.
Example
const order = [];
const makeDelay = (num, delay) => {
return Aigle.delay(delay)
.then(() => {
order.push(num);
return num;
});
};
Aigle.all([
makeDelay(1, 30),
makeDelay(2, 20),
makeDelay(3, 10)
])
.then(array => {
console.log(array); // [1, 2, 3];
console.log(order); // [3, 2, 1];
});
Parameters:
| Name | Type | Description |
|---|---|---|
array |
Array |
Returns:
Returns an Aigle instance
- Type
- Aigle
allSettled(collection)
- Source:
Return an Aigle instance
Example
Aigle.allSettled([
Aigle.resolve(1),
Aigle.reject(2),
Aigle.reject(3)
])
.then(array => {
console.log(array); // [{ state: 'fulfilled', value: 1 }, { state: 'rejected', reason: 2 }, { state: 'rejected', reason: 3 }]
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | it should be an array/object of functions or Promise instances |
attempt(handler) → {Aigle}
- Source:
Example
Aigle.attempt(() => {
throw Error('error');
})
.catch(error => console.log(error)); // error
Parameters:
| Name | Type | Description |
|---|---|---|
handler |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
concat(collection, iterator) → {Aigle}
Aigle.concat has almost the same functionality as Array#concat.
It iterates all elements of collection and executes iterator using each element on parallel.
The iterator needs to return a promise or something.
If a promise is returned, the function will wait until the promise is fulfilled.
Then the result will be assigned to an array, the role is the same as Array#concat.
All of them are finished, the function will return an array as a result.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = (num, index, collection) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.concat(collection, iterator)
.then(array => {
console.log(array); // [1, 2, 4];
console.log(order); // [1, 2, 4];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = (num, key, collection) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.concat(collection, iterator)
.then(array => {
console.log(array); // [1, 2, 4];
console.log(order); // [1, 2, 4];
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
concatLimit(collection, limitopt, iterator) → {Aigle}
- Source:
Aigle.concatLimit is almost the as Aigle.concat and
Aigle.concatSeries, but it will work with concurrency.
Examples
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (num, index, collection) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.concatLimit(collection, 2, iterator)
.then(array => {
console.log(array); // [1, 3, 5, 2, 4];
console.log(order); // [1, 3, 5, 2, 4];
});
const order = [];
const collection = {
task1: 1,
task2: 5,
task3: 3,
task4: 4,
task5: 2
};
const iterator = (num, key, collection) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.concatLimit(collection, 2, iterator)
.then(array => {
console.log(array); // [1, 3, 5, 2, 4];
console.log(order); // [1, 3, 5, 2, 4];
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.concatLimit(collection, iterator)
.then(array => {
console.log(array); // [1, 2, 3, 4, 5];
console.log(order); // [1, 2, 3, 4, 5];
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
collection |
Array | Object | |||
limit |
integer |
<optional> |
8
|
|
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
concatSeries(collection, iterator) → {Aigle}
- Source:
Aigle.concatSeries is almost the as Aigle.concat, but it will work in series.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = (num, index, collection) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.concatSeries(collection, iterator)
.then(array => {
console.log(array); // [1, 4, 2];
console.log(order); // [1, 4, 2];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = (num, key, collection) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.concatSeries(collection, iterator)
.then(array => {
console.log(array); // [1, 4, 2];
console.log(order); // [1, 4, 2];
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
config(opts)
Parameters:
| Name | Type | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
opts |
Object |
Properties
|
delay(ms, value) → {Aigle}
Return a promise which will be resolved with value after ms.
Examples
Aigle.delay(10)
.then(value => console.log(value); // undefined
Aigle.delay(10, 'test')
.then(value => console.log(value); // 'test'
Parameters:
| Name | Type | Description |
|---|---|---|
ms |
number | |
value |
* |
Returns:
Returns an Aigle instance
- Type
- Aigle
doUntil(valueopt, iterator, tester) → {Aigle}
- Source:
Examples
let count = 0;
const order = [];
const tester = num => {
order.push(`t:${num}`);
return Aigle.delay(10)
.then(() => num === 4);
};
const iterator = () => {
const num = ++count;
order.push(`i:${num}`);
return Aigle.delay(10)
.then(() => num);
};
Aigle.doUntil(iterator, tester)
.then(value => {
console.log(value); // 4
console.log(count); // 4
console.log(order); // [ 'i:1', 't:1', 'i:2', 't:2', 'i:3', 't:3', 'i:4', 't:4' ]
});
const order = [];
const tester = num => {
order.push(`t:${num}`);
return Aigle.delay(10)
.then(() => num === 4);
};
const iterator = count => {
const num = ++count;
order.push(`i:${num}`);
return Aigle.delay(10)
.then(() => num);
};
Aigle.doUntil(0, iterator, tester)
.then(value => {
console.log(value); // 4
console.log(order); // [ 'i:1', 't:1', 'i:2', 't:2', 'i:3', 't:3', 'i:4', 't:4' ]
});
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
* |
<optional> |
|
iterator |
function | ||
tester |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
doWhilst(valueopt, iterator, tester) → {Aigle}
- Source:
Examples
let count = 0;
const order = [];
const tester = num => {
order.push(`t:${num}`);
return Aigle.delay(10)
.then(() => num !== 4);
};
const iterator = () => {
const num = ++count;
order.push(`i:${num}`);
return Aigle.delay(10)
.then(() => num);
};
Aigle.doWhilst(iterator, tester)
.then(value => {
console.log(value); // 4
console.log(count); // 4
console.log(order); // [ 'i:1', 't:1', 'i:2', 't:2', 'i:3', 't:3', 'i:4', 't:4' ]
});
const order = [];
const tester = num => {
order.push(`t:${num}`);
return Aigle.delay(10)
.then(() => num !== 4);
};
const iterator = count => {
const num = ++count;
order.push(`i:${num}`);
return Aigle.delay(10)
.then(() => num);
};
Aigle.doWhilst(0, iterator, tester)
.then(value => {
console.log(value); // 4
console.log(order); // [ 'i:1', 't:1', 'i:2', 't:2', 'i:3', 't:3', 'i:4', 't:4' ]
});
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
* |
<optional> |
|
iterator |
function | ||
tester |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
each(iterator)
Parameters:
| Name | Type | Description |
|---|---|---|
iterator |
function |
each(collection, iterator) → {Aigle}
Aigle.each iterates all elements of collection and execute iterator for each element on parallel.
The iterator is called with three arguments. (value, index|key, collection)
If the iterator returns false or a promise which has false as a result, the promise state will be onFulfilled immediately.
⚠ All elements are already executed and can't be stopped. If you care about it, you should use Aigle.eachSeries.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = (num, index, collection) => {
return Aigle.delay(num * 10)
.then(() => order.push(num));
};
return Aigle.each(collection, iterator)
.then(value => {
console.log(value); // undefined
console.log(order); // [1, 2, 4];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = (num, key, collection) => {
return Aigle.delay(num * 10)
.then(() => order.push(num));
};
return Aigle.each(collection, iterator)
.then(value => {
console.log(value); // undefined
console.log(order); // [1, 2, 4];
});
const order = [];
const collection = [1, 4, 2];
const iterator = (num, index, collection) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num !== 2; // break
});
};
return Aigle.each(collection, iterator)
.then(value => {
console.log(value); // undefined
console.log(order); // [1, 2];
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
eachLimit(limitopt, iterator)
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
limit |
number |
<optional> |
8
|
|
iterator |
function |
eachLimit(A, limitopt, iterator) → {Aigle}
- Source:
Aigle.eachLimit is almost same as Aigle.each
and Aigle.eachSeries,
but it will work with concurrency.
limit is concurrency, if it is not defined, concurrency is 8.
Examples
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.eachLimit(collection, 2, iterator)
.then(value => {
console.log(value); // undefined
console.log(order); // [1, 3, 5, 2, 4];
});
const order = [];
const collection = {
task1: 1,
task2: 5,
task3: 3,
task4: 4,
task5: 2
};
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.eachLimit(collection, 2, iterator)
.then(value => {
console.log(value); // undefined
console.log(order); // [1, 3, 5, 2, 4];
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.eachLimit(collection, iterator)
.then(value => {
console.log(value); // undefined
console.log(order); // [1, 2, 3, 4, 5];
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num !== 3;
});
};
Aigle.eachLimit(collection, iterator)
.then(value => {
console.log(value); // undefined
console.log(order); // [1, 2, 3];
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
A |
Array | Object | collection to iterate over |
||
limit |
integer |
<optional> |
8
|
It is concurrncy, default is 8 |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
eachSeries(iterator)
Parameters:
| Name | Type | Description |
|---|---|---|
iterator |
function |
eachSeries(collection, iterator) → {Aigle}
- Source:
Aigle.eachSeries is almost the same as Aigle.each, but it will work in series.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => order.push(num));
};
Aigle.eachSeries(collection, iterator)
.then(value => {
console.log(value); // undefined
console.log(order); // [1, 4, 2];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => order.push(num));
};
Aigle.eachSeries(collection, iterator)
.then(value => {
console.log(value); // undefined
console.log(order); // [1, 4, 2];
});
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num !== 4; // break
});
};
Aigle.eachSeries(collection, iterator)
.then(value => {
console.log(value); // undefined
console.log(order); // [1, 4];
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
every(collection, iterator) → {Aigle}
Aigle.every is similar to Array#every.
If all elements return truthly or a promise which has a truthly value as a result,
the result will be true, otherwise it will be false.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = (num, index, collection) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return true;
});
};
Aigle.every(collection, iterator)
.then(value => {
console.log(value); // true
console.log(order); // [1, 2, 4];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = (num, key, collection) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return true;
});
};
Aigle.every(collection, iterator)
.then(value => {
console.log(value); // true
console.log(order); // [1, 2, 4];
});
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return n % 2;
});
};
Aigle.every(collection, iterator)
.then(value => {
console.log(value); // false
console.log(order); // [1, 2];
});
const collection = [{
uid: 1, active: false
}, {
uid: 4, active: true
}, {
uid: 2, active: true
}];
Aigle.every(collection, 'active')
.then(value => console.log(value)); // false
const collection = [{
uid: 1, active: false
}, {
uid: 4, active: true
}, {
uid: 2, active: true
}];
Aigle.every(collection, ['active', true])
.then(value => console.log(value)); // false
const collection = [{
uid: 1, active: true
}, {
uid: 4, active: true
}, {
uid: 2, active: true
}];
Aigle.every(collection, { active: true })
.then(value => console.log(value)); // true
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function | Array | Object | string |
Returns:
Returns an Aigle instance
- Type
- Aigle
everyLimit(collection, limitopt, iterator) → {Aigle}
- Source:
Examples
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return true;
});
};
Aigle.everyLimit(collection, 2, iterator)
.then(value => {
console.log(value); // true
console.log(order); // [1, 3, 5, 2, 4];
});
const order = [];
const collection = {
task1: 1,
task2: 5,
task3: 3,
task4: 4,
task5: 2
};
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return true;
});
};
Aigle.everyLimit(collection, 2, iterator)
.then(value => {
console.log(value); // true
console.log(order); // [1, 3, 5, 2, 4];
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num === 4;
});
};
Aigle.everyLimit(collection, iterator)
.then(value => {
console.log(value); // false
console.log(order); // [1, 2, 3, 4];
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
collection |
Array | Object | |||
limit |
integer |
<optional> |
8
|
|
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
everySeries(collection, iterator) → {Aigle}
- Source:
Aigle.everySeries is almost the same as Aigle.every, but it will work in series.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = (num, index, collection) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return true;
});
};
Aigle.everySeries(collection, iterator)
.then(value => {
console.log(value); // true
console.log(order); // [1, 4, 2];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = (num, key, collection) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return true;
});
};
Aigle.everySeries(collection, iterator)
.then(value => {
console.log(value); // true
console.log(order); // [1, 4, 2];
});
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return n % 2;
});
};
Aigle.everySeries(collection, iterator)
.then(value => {
console.log(value); // false
console.log(order); // [1, 4];
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
filter(collection, iterator) → {Aigle}
Aigle.filter has almost the same functionality as Array#filter.
It iterates all elements of collection and executes iterator using each element on parallel.
The iterator needs to return a promise or something.
If a promise is returned, the function will wait until the promise is fulfilled.
If the result is falsy, the element will be removed.
All of them are finished, the function will return an array as a result.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.filter(collection, iterator)
.then(array => {
console.log(array); // [1];
console.log(order); // [1, 2, 4];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.filter(collection, iterator)
.then(array => {
console.log(array); // [1];
console.log(order); // [1, 2, 4];
});
const order = [];
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.filter(collection, 'active')
.then(array => {
console.log(array); // [{ name: 'fread', active: true }]
});
const order = [];
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.filter(collection, ['name', 'fread'])
.then(array => {
console.log(array); // [{ name: 'fread', active: true }]
});
const order = [];
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.filter(collection, { name: 'fread', active: true })
.then(array => {
console.log(array); // [{ name: 'fread', active: true }]
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function | Array | Object | string |
Returns:
Returns an Aigle instance
- Type
- Aigle
filterLimit(collection, limitopt, iterator) → {Aigle}
- Source:
Aigle.filterLimit is almost the as Aigle.filter and
Aigle.filterSeries, but it will work with concurrency.
Examples
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.filterLimit(collection, 2, iterator)
.then(array => {
console.log(array); // [1, 5, 3];
console.log(order); // [1, 3, 5, 2, 4];
});
const order = [];
const collection = {
task1: 1,
task2: 5,
task3: 3,
task4: 4,
task5: 2
};
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.filterLimit(collection, 2, iterator)
.then(array => {
console.log(array); // [1, 5, 3];
console.log(order); // [1, 3, 5, 2, 4];
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.filterLimit(collection, iterator)
.then(array => {
console.log(array); // [1, 5, 3];
console.log(order); // [1, 2, 3, 4, 5];
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
collection |
Array | Object | |||
limit |
integer |
<optional> |
8
|
|
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
filterSeries(collection, iterator) → {Aigle}
- Source:
Aigle.filterSeries is almost the as Aigle.filter, but it will work in series.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.filterSeries(collection, iterator)
.then(array => {
console.log(array); // [1];
console.log(order); // [1, 4, 2];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.filterSeries(collection, iterator)
.then(array => {
console.log(array); // [1];
console.log(order); // [1, 4, 2];
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
find(collection, iterator) → {Aigle}
Aigle.find has almost the same functionality as Array#find.
It iterates all elements of collection and executes iterator using each element on parallel.
The iterator needs to return a promise or something.
If a promise is returned, the function will wait until the promise is fulfilled.
If the result is truthly, the element will be returned as a result.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.find(collection, iterator)
.then(value => {
console.log(value); // 2
console.log(order); // [1, 2]
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.find(collection, iterator)
.then(value => {
console.log(value); // 2
console.log(order); // [1, 2]
});
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return false;
});
};
Aigle.find(collection, iterator)
.then(value => {
console.log(value); // undefined
console.log(order); // [1, 2, 4]
});
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.find(collection, 'active')
.then(object => {
console.log(object); // { name: 'fread', active: true }
});
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.find(collection, ['name', 'fread'])
.then(object => {
console.log(object); // { name: 'fread', active: true }
});
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.find(collection, { name: 'fread', active: true })
.then(object => {
console.log(object); // { name: 'fread', active: true }
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function | Array | Object | string |
Returns:
Returns an Aigle instance
- Type
- Aigle
findIndex(collection, iterator) → {Aigle}
- Source:
Aigle.findIndex is like Aigle.find, it will return the index of the first element which the iterator returns truthy.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.findIndex(collection, iterator)
.then(index => {
console.log(index); // 2
console.log(order); // [1, 2]
});
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return false;
});
};
Aigle.findIndex(collection, iterator)
.then(index => {
console.log(index); // -1
console.log(order); // [1, 2, 4]
});
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.findIndex(collection, 'active')
.then(index => {
console.log(index); // 1
});
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.findIndex(collection, ['name', 'fread'])
.then(index => {
console.log(index); // true
});
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.find(collection, { name: 'fread', active: true })
.then(index => {
console.log(index); // 1
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | |
iterator |
function | Array | Object | string |
Returns:
Returns an Aigle instance
- Type
- Aigle
findIndexLimit(collection, limitopt, iterator) → {Aigle}
- Source:
Aigle.findIndexLimit is almost the as Aigle.findIndex and
Aigle.findIndexSeries, but it will work with concurrency.
Examples
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.findIndexLimit(collection, 2, iterator)
.then(index => {
console.log(index); // 4
console.log(order); // [1, 3, 5, 2];
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.findIndexLimit(collection, iterator)
.then(index => {
console.log(index); // 4
console.log(order); // [1, 2];
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
collection |
Array | |||
limit |
integer |
<optional> |
8
|
|
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
findIndexSeries(collection, iterator) → {Aigle}
- Source:
Aigle.findIndexSeries is almost the as Aigle.findIndex, but it will work in series.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.findIndexSeries(collection, iterator)
.then(index => {
console.log(index); // 1
console.log(order); // [1, 4];
});
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return false;
});
};
Aigle.findIndexSeries(collection, iterator)
.then(index => {
console.log(index); // -1
console.log(order); // [1, 4, 2];
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
findKey(collection, iterator) → {Aigle}
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function | Array | Object | string |
Returns:
Returns an Aigle instance
- Type
- Aigle
findKeyLimit(collection, limitopt, iterator) → {Aigle}
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
collection |
Array | Object | |||
limit |
integer |
<optional> |
8
|
|
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
findKeySeries(collection, iterator) → {Aigle}
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
findLimit(collection, limitopt, iterator) → {Aigle}
- Source:
Aigle.findLimit is almost the as Aigle.find and
Aigle.findSeries, but it will work with concurrency.
Examples
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.findLimit(collection, 2, iterator)
.then(value => {
console.log(value); // 2
console.log(order); // [1, 3, 5, 2];
});
const order = [];
const collection = { a: 1, b: 5, c: 3, d: 4, e: 2 };
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.findLimit(collection, 2, iterator)
.then(value => {
console.log(value); // 2
console.log(order); // [1, 3, 5, 2];
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.findLimit(collection, iterator)
.then(value => {
console.log(value); // 2
console.log(order); // [1, 2];
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
collection |
Array | Object | |||
limit |
integer |
<optional> |
8
|
|
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
findSeries(collection, iterator) → {Aigle}
- Source:
Aigle.findSeries is almost the as Aigle.find, but it will work in series.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.findSeries(collection, iterator)
.then(value => {
console.log(value); // 4
console.log(order); // [1, 4];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.findSeries(collection, iterator)
.then(value => {
console.log(value); // 4
console.log(order); // [1, 4];
});
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return false;
});
};
Aigle.findSeries(collection, iterator)
.then(value => {
console.log(value); // undefined
console.log(order); // [1, 4, 2];
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
flow(…funcs) → {function}
Example
const add = (a, b) => Aigle.delay(10, a + b);
const square = n => Aigle.delay(10, n * n);
const addSquare = Aigle.flow(add, square);
return addSquare(1, 2).then(value => {
console.log(value); // 9
});
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
funcs |
Array.<function()> |
<repeatable> |
Returns:
Returns the new composite function
- Type
- function
groupBy(collection, iterator) → {Aigle}
- Source:
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.groupBy(collection, iterator)
.then(object => {
console.log(object); // { '0': [2, 4], '1': [1] };
console.log(order); // [1, 2, 4];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.groupBy(collection, iterator)
.then(object => {
console.log(object); // { '0': [2, 4], '1': [1] };
console.log(order); // [1, 2, 4];
});
const order = [];
const collection = ['one', 'two', 'three'];
Aigle.groupBy(collection, 'length')
.then(object => {
console.log(object); // { '3': ['one', 'two'], '5': ['three'] };
});
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.groupBy(collection, ['active', true])
.then(object => {
console.log(object);
// { 'true': [{ name: 'fread', active: true }], 'false': [{ name: 'bargey', active: false }];
});
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.groupBy(collection, { active: true })
.then(object => {
console.log(object);
// { 'true': [{ name: 'fread', active: true }], 'false': [{ name: 'bargey', active: false }];
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function | string |
Returns:
Returns an Aigle instance
- Type
- Aigle
groupByLimit(collection, limitopt, iterator) → {Aigle}
- Source:
Examples
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.groupByLimit(collection, 2, iterator)
.then(object => {
console.log(object); // { '0': [2, 4], '1': [1, 3, 5] };
console.log(order); // [1, 3, 5, 2, 4];
});
const order = [];
const collection = {
task1: 1,
task2: 5,
task3: 3,
task4: 4,
task5: 2
};
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.groupByLimit(collection, 2, iterator)
.then(object => {
console.log(object); // { '0': [2, 4], '1': [1, 3, 5] };
console.log(order); // [1, 3, 5, 2, 4];
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.groupByLimit(collection, iterator)
.then(object => {
console.log(object); // { '0': [2, 4], '1': [1, 3, 5] };
console.log(order); // [1, 2, 3, 4, 5];
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
collection |
Array | Object | |||
limit |
integer |
<optional> |
8
|
|
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
groupBySeries(collection, iterator) → {Aigle}
- Source:
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.groupBySeries(collection, iterator)
.then(object => {
console.log(object); // { '0': [4, 2], '1': [1] };
console.log(order); // [1, 4, 2];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.groupBySeries(collection, iterator)
.then(object => {
console.log(object); // { '0': [4, 2], '1': [1] };
console.log(order); // [1, 4, 2];
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
join()
Example
const p1 = Aigle.delay(20).then(() => 1);
const p2 = Aigle.delay(10).then(() => 2);
Aigle.join(p1, p2, (v1, v2) => {
console.log(v1, v2); // 1 2
});
map(collection, iterator) → {Aigle}
Aigle.map has almost the same functionality as Array#map.
It iterates all elements of collection and executes iterator using each element on parallel.
The iterator needs to return a promise or something.
Then the result will be assigned to an array and the array order will be ensured.
All of them are finished, the function will return an array as a result.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.map(collection, iterator)
.then(array => {
console.log(array); // [2, 8, 4];
console.log(order); // [1, 2, 4];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.map(collection, iterator)
.then(array => {
console.log(array); // [2, 8, 4];
console.log(order); // [1, 2, 4];
});
const collection = [{
uid: 1, name: 'test1'
}, {
uid: 4, name: 'test4'
}, {
uid: 2, name: 'test2'
}];
Aigle.map(collection, 'uid')
.then(uids => console.log(uids)); // [1, 4, 2]
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function | string |
Returns:
Returns an Aigle instance
- Type
- Aigle
mapLimit(collection, limitopt, iterator) → {Aigle}
- Source:
Aigle.mapLimit is almost the smae as Aigle.map and
Aigle.mapSeries, but it will work with concurrency.
Examples
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.mapLimit(collection, 2, iterator)
.then(array => {
console.log(array); // [2, 10, 6, 8, 4];
console.log(order); // [1, 3, 5, 2, 4];
});
const order = [];
const collection = { a: 1, b: 5, c: 3, d: 4, e: 2 };
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.mapLimit(collection, 2, iterator)
.then(array => {
console.log(array); // [2, 10, 6, 8, 4];
console.log(order); // [1, 3, 5, 2, 4];
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.mapLimit(collection, iterator)
.then(array => {
console.log(array); // [2, 10, 6, 8, 4];
console.log(order); // [1, 2, 3, 4, 5];
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
collection |
Array | Object | |||
limit |
integer |
<optional> |
8
|
|
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
mapSeries(collection, iterator) → {Aigle}
- Source:
Aigle.mapSeries is almost the smae as Aigle.map, but it will work in series.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.mapSeries(collection, iterator)
.then(array => {
console.log(array); // [2, 8, 4];
console.log(order); // [1, 4, 2];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.mapSeries(collection, iterator)
.then(array => {
console.log(array); // [2, 8, 4];
console.log(order); // [1, 4, 2];
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
mapValues(collection, iterator) → {Aigle}
- Source:
Aigle.mapValues is similar to Aigle.map.
It returns an object instead of an array.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.mapValues(collection, iterator)
.then(object => {
console.log(object); // { '0': 2, '1': 8, '2': 4 }
console.log(order); // [1, 2, 4]
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.mapValues(collection, iterator)
.then(object => {
console.log(object); // { a: 2, b: 8, c: 4 }
console.log(order); // [1, 2, 4]
});
const collection = {
task1: { uid: 1, name: 'test1' },
task2: { uid: 4, name: 'test4' },
task3: { uid: 2, name: 'test2' }
}];
Aigle.mapValues(collection, 'uid')
.then(uids => console.log(uids)); // { task1: 1, task2: 4, task3: 2 }
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function | string |
Returns:
Returns an Aigle instance
- Type
- Aigle
mapValuesLimit(collection, limitopt, iterator) → {Aigle}
- Source:
Aigle.mapValuesLimit is almost the same as Aigle.mapValues and
Aigle.mapValuesSeries, but it will work with concurrency.
Examples
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.mapValuesLimit(collection, 2, iterator)
.then(object => {
console.log(object); // { '0': 2, '1': 10, '2': 6, '3': 8, '4': 4 }
console.log(order); // [1, 3, 5, 2, 4]
});
const order = [];
const collection = { a: 1, b: 5, c: 3, d: 4, e: 2 };
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.mapValuesLimit(collection, 2, iterator)
.then(object => {
console.log(object); // { a: 2, b: 10, c: 6, d: 8, e: 4 }
console.log(order); // [1, 3, 5, 2, 4]
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.mapValuesLimit(collection, iterator)
.then(object => {
console.log(object); // { '0': 2, '1': 10, '2': 6, '3': 8, '4': 4 }
console.log(order); // [1, 2, 3, 4, 5]
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
collection |
Array | Object | |||
limit |
integer |
<optional> |
8
|
|
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
mapValuesSeries(collection, iterator) → {Aigle}
- Source:
Aigle.mapValuesSeries is almost the same as Aigle.mapValues, but it will work in series.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.mapValuesSeries(collection, iterator)
.then(object => {
console.log(object); // { '0': 2, '1': 8, '2': 4 };
console.log(order); // [1, 4, 2];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.mapValuesSeries(collection, iterator)
.then(object => {
console.log(object); // { a: 2, b: 8, c: 4 }
console.log(order); // [1, 4, 2];
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
mixin(sources, optsopt)
Add functions which sources has to the Aigle class functions and static functions. The functions will be converted asynchronous functions. If an extended function returns a promise instance, the function will wait until the promise is resolved.
Examples
Aigle.mixin(require('lodash'));
const array = [1, 2, 3];
return Aigle.map(array, n => Aigle.delay(10, n * 2))
.sum()
.then(value => {
console.log(value; // 12
});
Aigle.mixin(require('lodash'));
const array = [1.1, 1.4, 2.2];
return Aigle.map(array, n => Aigle.delay(10, n * 2))
.uniqBy(n => Aigle.delay(10, Math.floor(n))
.then(array => {
console.log(array; // [2.2, 4.4]
});
Parameters:
| Name | Type | Attributes | Description | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
sources |
Object | |||||||||||||||||
opts |
Object |
<optional> |
Properties
|
omit(collection, iterator, …argsopt) → {Aigle}
Aigle.omit has almost the same functionality as Aigle.filter.
It will return an object as a result.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.omit(collection, iterator)
.then(object => {
console.log(object); // { '0': 1 }
console.log(order); // [1, 2, 4]
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.omit(collection, iterator)
.then(object => {
console.log(object); // { a: 1 }
console.log(order); // [1, 2, 4]
});
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
collection |
Array | Object | ||
iterator |
function | Array | Object | string | ||
args |
* |
<optional> <repeatable> |
Returns:
Returns an Aigle instance
- Type
- Aigle
omitBy(collection, iterator) → {Aigle}
Aigle.omitBy has almost the same functionality as Aigle.reject.
It will return an object as a result.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.omitBy(collection, iterator)
.then(object => {
console.log(object); // { '1': 4, '2': 4 }
console.log(order); // [1, 2, 4]
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.omitBy(collection, iterator)
.then(object => {
console.log(object); // { b: 4, c: 2 }
console.log(order); // [1, 2, 4]
});
const order = [];
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.omitBy(collection, 'active')
.then(object => {
console.log(object); // { '0': { name: 'bargey', active: false } }
});
const order = [];
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.omitBy(collection, ['name', 'fread'])
.then(object => {
console.log(object); // { '0': { name: 'bargey', active: false } }
});
const order = [];
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.omitBy(collection, { name: 'fread', active: true })
.then(object => {
console.log(object); // { '0': { name: 'bargey', active: false } }
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function | Array | Object | string |
Returns:
Returns an Aigle instance
- Type
- Aigle
omitByLimit(limitopt, iterator)
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
limit |
number |
<optional> |
8
|
|
iterator |
function |
omitByLimit(collection, limitopt, iterator) → {Aigle}
- Source:
Aigle.omitByLimit is almost the as Aigle.omitBy and
Aigle.omitBySeries, but it will work with concurrency.
Examples
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.omitByLimit(collection, 2, iterator)
.then(object => {
console.log(object); // { '3': 4, '4': 2 }
console.log(order); // [1, 3, 5, 2, 4]
});
const order = [];
const collection = { a: 1, b: 5, c: 3, d: 4, e: 2 };
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.omitByLimit(collection, 2, iterator)
.then(object => {
console.log(object); // { d: 4, e: 2 }
console.log(order); // [1, 3, 5, 2, 4]
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.omitByLimit(collection, iterator)
.then(object => {
console.log(object); // { '3': 4, '4': 2 }
console.log(order); // [1, 2, 3, 4, 5]
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
collection |
Array | Object | |||
limit |
integer |
<optional> |
8
|
|
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
omitBySeries(iterator)
Parameters:
| Name | Type | Description |
|---|---|---|
iterator |
function |
omitBySeries(collection, iterator) → {Aigle}
- Source:
Aigle.omitBySeries is almost the as Aigle.omitBy, but it will work in series.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.omitBySeriesSeries(collection, iterator)
.then(object => {
console.log(object); // { '1': 4, '2': 2 }
console.log(order); // [1, 4, 2]
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.omitBySeriesSeries(collection, iterator)
.then(object => {
console.log(object); // { b: 4, c: 2 }
console.log(order); // [1, 4, 2]
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
parallel(collection)
- Source:
Aigle.parallel functionality is similar to Aigle.all
and Aigle.props, and the function allows function collection.
Examples
Aigle.parallel([
() => Aigle.delay(30, 1),
Aigle.delay(20, 2),
3
]).then(array => {
console.log(array); // [1, 2, 3]
});
Aigle.parallel({
a: () => Aigle.delay(30, 1),
b: Aigle.delay(20, 2),
c: 3
}).then(obj => {
console.log(obj); // { a: 1, b: 2, c: 3 }
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | it should be an array/object of functions or Promise instances |
parallelLimit(collection, limitopt)
- Source:
Aigle.parallel functionality has the same functionality as Aigle.parallel
and it works with concurrency.
Examples
Aigle.parallelLimit([
() => Aigle.delay(30, 1),
Aigle.delay(20, 2),
3
]).then(array => {
console.log(array); // [1, 2, 3]
});
Aigle.parallelLimit({
a: () => Aigle.delay(30, 1),
b: Aigle.delay(20, 2),
c: 3
}, 2).then(obj => {
console.log(obj); // { a: 1, b: 2, c: 3 }
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
collection |
Array | Object | it should be an array/object of functions or Promise instances |
||
limit |
integer |
<optional> |
8
|
It is concurrncy, default is 8 |
pick(collection, iterator, …argsopt) → {Aigle}
Aigle.pick has almost the same functionality as Aigle.filter.
It will return an object as a result.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.pick(collection, iterator)
.then(object => {
console.log(object); // { '0': 1 }
console.log(order); // [1, 2, 4]
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.pick(collection, iterator)
.then(object => {
console.log(object); // { a: 1 }
console.log(order); // [1, 2, 4]
});
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
collection |
Array | Object | ||
iterator |
function | Array | Object | string | ||
args |
* |
<optional> <repeatable> |
Returns:
Returns an Aigle instance
- Type
- Aigle
pickBy(collection, iterator) → {Aigle}
Aigle.pickBy has almost the same functionality as Aigle.filter.
It will return an object as a result.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.pickBy(collection, iterator)
.then(object => {
console.log(object); // { '0': 1 }
console.log(order); // [1, 2, 4]
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.pickBy(collection, iterator)
.then(object => {
console.log(object); // { a: 1 }
console.log(order); // [1, 2, 4]
});
const order = [];
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.pickBy(collection, 'active')
.then(object => {
console.log(object); // { '1': { name: 'fread', active: true } }
});
const order = [];
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.pickBy(collection, ['name', 'fread'])
.then(object => {
console.log(object); // { '1': { name: 'fread', active: true } }
});
const order = [];
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.pickBy(collection, { name: 'fread', active: true })
.then(object => {
console.log(object); // { '1': { name: 'fread', active: true } }
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function | Array | Object | string |
Returns:
Returns an Aigle instance
- Type
- Aigle
pickByLimit(limitopt, iterator)
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
limit |
number |
<optional> |
8
|
|
iterator |
function |
pickByLimit(collection, limitopt, iterator) → {Aigle}
- Source:
Aigle.pickByLimit is almost the as Aigle.pickBy and
Aigle.pickBySeries, but it will work with concurrency.
Examples
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.pickByLimit(collection, 2, iterator)
.then(object => {
console.log(object); // { '0': 1, '1': 5, '2': 3 }
console.log(order); // [1, 3, 5, 2, 4]
});
const order = [];
const collection = { a: 1, b: 5, c: 3, d: 4, e: 2 };
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.pickByLimit(collection, 2, iterator)
.then(object => {
console.log(object); // { a: 1, b: 5, c: 3 }
console.log(order); // [1, 3, 5, 2, 4]
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.pickByLimit(collection, iterator)
.then(object => {
console.log(object); // { '0': 1, '1': 5, '2': 3 }
console.log(order); // [1, 2, 3, 4, 5]
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
collection |
Array | Object | |||
limit |
integer |
<optional> |
8
|
|
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
pickBySeries(iterator)
Parameters:
| Name | Type | Description |
|---|---|---|
iterator |
function |
pickBySeries(collection, iterator) → {Aigle}
- Source:
Aigle.pickBySeries is almost the as Aigle.pickBy, but it will work in series.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.pickBySeries(collection, iterator)
.then(object => {
console.log(object); // { '0': 1 }
console.log(order); // [1, 4, 2]
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num * 2;
});
};
Aigle.pickBySeries(collection, iterator)
.then(object => {
console.log(object); // { a: 1 }
console.log(order); // [1, 4, 2]
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
promisify(fn, fnopt)
- Source:
Examples
const func = (a, b, c, callback) => callback(null, a + b + c);
Aigle.promisify(func)(1, 2, 3)
.then(value => console.log(value)); // 6
const obj = {
val: 1,
get(callback) {
callback(null, this.val);
}
};
// using bind
Aigle.promisify(obj.get.bind(obj))().then(console.log);
// using context
Aigle.promisify(obj.get, { context: obj })().then(console.log);
// using shorthand
Aigle.promisify(obj, 'get')().then(console.log);
Parameters:
| Name | Type | Attributes | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
fn |
Object | function | ||||||||||
fn |
string | number | Object |
<optional> |
Properties
|
promisifyAll(target, optsopt)
- Source:
Example
const redis = require('redis');
Aigle.promisifyAll(redis);
const client = redis.createClient();
const key = 'test';
redis.hsetAsync(key, 1)
.then(() => redis.hgetAsync(key))
.then(value => console.log(value)); // 1
Parameters:
| Name | Type | Attributes | Description | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
target |
Object | ||||||||||||||||||||||
opts |
Object |
<optional> |
Properties
|
props(object)
Aigle.props is almost the same functionality as Aigle.all
But the function allows an object as the first argument instead of an array.
Example
const order = [];
const makeDelay = (num, delay) => {
return Aigle.delay(delay)
.then(() => {
order.push(num);
return num;
});
};
Aigle.props({
a: makeDelay(1, 30),
b: makeDelay(2, 20),
c: makeDelay(3, 10)
})
.then(object => {
console.log(object); // { a: 1, b: 2, c: 3 }
console.log(order); // [3, 2, 1]
});
Parameters:
| Name | Type | Description |
|---|---|---|
object |
Object |
race(collection)
Examples
Aigle.race([
new Aigle(resolve => setTimeout(() => resolve(1), 30)),
new Aigle(resolve => setTimeout(() => resolve(2), 20)),
new Aigle(resolve => setTimeout(() => resolve(3), 10))
])
.then(value => console.log(value)); // 3
Aigle.race({
a: new Aigle(resolve => setTimeout(() => resolve(1), 30)),
b: new Aigle(resolve => setTimeout(() => resolve(2), 20)),
c: new Aigle(resolve => setTimeout(() => resolve(3), 10))
})
.then(value => console.log(value)); // 3
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Object | Array |
reduce(collection, iterator, resultopt) → {Aigle}
Examples
const collection = [1, 4, 2];
const iterator = (result, num, index) => {
return Aigle.delay(num * 10)
.then(() => result + num);
};
return Aigle.reduce(collection, iterator, 1)
.then(value => console.log(value)); // 8
const collection = { a: 1, b: 4, c: 2 };
const iterator = (result, num, key) => {
return Aigle.delay(num * 10)
.then(() => result + num);
};
return Aigle.reduce(collection, iterator, '')
.then(value => console.log(value)); // '142'
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
collection |
Array | Object | ||
iterator |
function | ||
result |
* |
<optional> |
Returns:
Returns an Aigle instance
- Type
- Aigle
reject(collection, iteratoropt) → {Aigle}
Aigle reject has two features.
One of them is basic Promise.reject function, it returns a rejected Aigle instance.
The other is a collection function, it requires an iterator function. It is the opposite of filter.
If the iterator function is not defined, the function works as a first one.
Examples
const error = new Error('error');
Aigle.reject(error)
.catch(error => {
console.log(error); // error
});
const order = [];
const collection = [1, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.reject(collection, iterator)
.then(array => {
console.log(array); // [4, 2];
console.log(order); // [1, 2, 4];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.reject(collection, iterator)
.then(array => {
console.log(array); // [4, 2];
console.log(order); // [1, 2, 4];
});
const order = [];
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.reject(collection, 'active')
.then(array => {
console.log(array); // [{ name: 'fread', active: false }]
});
const order = [];
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.reject(collection, ['name', 'bargey'])
.then(array => {
console.log(array); // [{ name: 'fread', active: false }]
});
const order = [];
const collection = [{
name: 'bargey', active: false
}, {
name: 'fread', active: true
}];
Aigle.reject(collection, { name: 'bargey', active: false })
.then(array => {
console.log(array); // [{ name: 'fread', active: false }]
});
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
collection |
function | Array | Object | ||
iterator |
function | Array | Object | string |
<optional> |
Returns:
Returns an Aigle instance
- Type
- Aigle
rejectLimit(collection, limitopt, iterator) → {Aigle}
- Source:
Examples
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.rejectLimit(collection, 2, iterator)
.then(array => {
console.log(array); // [4, 2]
console.log(order); // [1, 3, 5, 2, 4]
});
const order = [];
const collection = { a: 1, b: 5, c: 3, d: 4, e: 2 };
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.rejectLimit(collection, 2, iterator)
.then(array => {
console.log(array); // [4, 2]
console.log(order); // [1, 3, 5, 2, 4]
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.rejectLimit(collection, iterator)
.then(array => {
console.log(array); // [4, 2]
console.log(order); // [1, 2, 3, 4, 5]
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
collection |
Array | Object | |||
limit |
integer |
<optional> |
8
|
|
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
rejectSeries(collection, iterator) → {Aigle}
- Source:
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.rejectSeries(collection, iterator)
.then(array => {
console.log(array); // [4, 2];
console.log(order); // [1, 4, 2];
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2;
});
};
Aigle.rejectSeries(collection, iterator)
.then(array => {
console.log(array); // [4, 2];
console.log(order); // [1, 4, 2];
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
retry(timesopt, handler)
Examples
let called = 0;
Aigle.retry(3, () => {
return new Aigle((resolve, reject) => {
setTimeout(() => reject(++called), 10);
});
})
.catch(error => {
console.log(error); // 3
console.log(called); // 3
});
let called = 0;
Aigle.retry(() => {
return new Aigle((resolve, reject) => {
setTimeout(() => reject(++called), 10);
});
})
.catch(error => {
console.log(error); // 5
console.log(called); // 5
});
let called = 0;
const opts = {
times: 5,
interval: 10
};
Aigle.retry(opts, () => {
return new Aigle((resolve, reject) => {
setTimeout(() => reject(++called), 10);
});
})
.catch(error => {
console.log(error); // 5
console.log(called); // 5
});
let called = 0;
const opts = {
times: 5,
interval: c => c * 2;
};
Aigle.retry(opts, () => {
return new Aigle((resolve, reject) => {
setTimeout(() => reject(++called), 10);
});
})
.catch(error => {
console.log(error); // 5
console.log(called); // 5
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
times |
Integer | Object |
<optional> |
5
|
|
handler |
function |
series(collection)
Aigle.series functionality has the same functionality as Aigle.parallel
and it works in series.
Examples
Aigle.series([
() => Aigle.delay(30, 1),
Aigle.delay(20, 2),
3
]).then(array => {
console.log(array); // [1, 2, 3]
});
Aigle.series({
a: () => Aigle.delay(30, 1),
b: Aigle.delay(20, 2),
c: 3
}).then(obj => {
console.log(obj); // { a: 1, b: 2, c: 3 }
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | it should be an array/object of functions or Promise instances |
some(collection, iterator) → {Aigle}
Aigle.some has almost the same functionality as Array#some.
It iterates all elements of collection and executes iterator using each element on parallel.
The iterator needs to return a promise or something..
If a promise is returned, the function will wait until the promise is fulfilled.
If the result is truthy, the function will return true otherwise false.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.some(collection, iterator)
.then(bool => {
console.log(bool); // true
console.log(order); // [1, 2]
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.some(collection, iterator)
.then(bool => {
console.log(bool); // true
console.log(order); // [1, 2]
});
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return false;
});
};
Aigle.some(collection, iterator)
.then(bool => {
console.log(bool); // false
console.log(order); // [1, 2, 4]
});
const collection = [{
uid: 1, active: false
}, {
uid: 4, active: true
}, {
uid: 2, active: true
}];
Aigle.some(collection, 'active')
.then(value => console.log(value)); // true
const collection = [{
uid: 1, active: false
}, {
uid: 4, active: true
}, {
uid: 2, active: true
}];
Aigle.some(collection, ['uid', 4])
.then(value => console.log(value)); // true
const collection = [{
uid: 1, active: false
}, {
uid: 4, active: true
}, {
uid: 2, active: true
}];
Aigle.some(collection, { uid: 4 })
.then(value => console.log(value)); // true
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function | Array | Object | string |
Returns:
Returns an Aigle instance
- Type
- Aigle
someLimit(collection, limitopt, iterator) → {Aigle}
- Source:
Aigle.someLimit is almost the as Aigle.some and
Aigle.someSeries, but it will work with concurrency.
Examples
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.someLimit(collection, 2, iterator)
.then(bool => {
console.log(bool); // true
console.log(order); // [1, 3, 5, 2]
});
const order = [];
const collection = { a: 1, b: 5, c: 3, d: 4, e: 2 };
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.someLimit(collection, 2, iterator)
.then(bool => {
console.log(bool); // true
console.log(order); // [1, 3, 5, 2]
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.someLimit(collection, iterator)
.then(bool => {
console.log(bool); // true
console.log(order); // [1, 2]
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
collection |
Array | Object | |||
limit |
integer |
<optional> |
8
|
|
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
someSeries(collection, iterator) → {Aigle}
- Source:
Aigle.someSeries is almost the as Aigle.some, but it will work in series.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.someSeries(collection, iterator)
.then(bool => {
console.log(bool); // true
console.log(order); // [1, 4]
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num % 2 === 0;
});
};
Aigle.someSeries(collection, iterator)
.then(bool => {
console.log(bool); // true
console.log(order); // [1, 4]
});
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return false;
});
};
Aigle.someSeries(collection, iterator)
.then(bool => {
console.log(bool); // false
console.log(order); // [1, 4, 2]
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
sortBy(collection, iterator) → {Aigle}
It iterates all elements of collection and executes iterator using each element on parallel.
It creates a sorted array which is ordered by results of iterator.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.sortBy(collection, iterator)
.then(array => {
console.log(array); // [1, 2, 4]
console.log(order); // [1, 2, 4]
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.sortBy(collection, iterator)
.then(array => {
console.log(array); // [1, 2, 4]
console.log(order); // [1, 2, 4]
});
const order = [];
const collection = [{
uid: 2, name: 'bargey', uid: 2
}, {
uid: 1, name: 'fread'
}];
Aigle.sortBy(collection, 'uid')
.then(array => {
console.log(array); // [{ uid: 1, name: 'fread' }, { uid: 2, name: 'bargey' ]
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function | string |
Returns:
Returns an Aigle instance
- Type
- Aigle
sortByLimit(collection, limitopt, iterator) → {Aigle}
- Source:
Aigle.sortByLimit is almost the smae as Aigle.sortBy and
Aigle.sortBySeries, but it will work with concurrency.
Examples
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.sortByLimit(collection, 2, iterator)
.then(array => {
console.log(array); // [1, 2, 3, 4, 5]
console.log(order); // [1, 3, 5, 2, 4]
});
const order = [];
const collection = { a: 1, b: 5, c: 3, d: 4, e: 2 };
const iterator = (num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.sortByLimit(collection, 2, iterator)
.then(array => {
console.log(array); // [1, 2, 3, 4, 5]
console.log(order); // [1, 3, 5, 2, 4]
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.sortByLimit(collection, iterator)
.then(array => {
console.log(array); // [1, 2, 3, 4, 5]
console.log(order); // [1, 2, 3, 4, 5]
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
collection |
Array | Object | |||
limit |
integer |
<optional> |
8
|
|
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
sortBySeries(collection, iterator) → {Aigle}
- Source:
Aigle.sortBySeries is almost the smae as Aigle.sortBy, but it will work in series.
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.sortBySeries(collection, iterator)
.then(array => {
console.log(array); // [1, 2, 4]
console.log(order); // [1, 4, 2]
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = num => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
return num;
});
};
Aigle.sortBySeries(collection, iterator)
.then(array => {
console.log(array); // [1, 2, 4]
console.log(order); // [1, 4, 2]
});
Parameters:
| Name | Type | Description |
|---|---|---|
collection |
Array | Object | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
times(times, iterator) → {Aigle}
Example
const order = [];
const timer = [30, 20, 10];
const iterator = n => {
return Aigle.delay(timer[n])
.then(() => {
order.push(n);
return n;
});
};
Aigle.times(3, iterator)
.then(array => {
console.log(array); // [0, 1, 2]
console.log(order); // [2, 1, 0]
});
Parameters:
| Name | Type | Description |
|---|---|---|
times |
integer | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
timesLimit(times, limitopt, iterator) → {Aigle}
- Source:
Examples
const order = [];
const timer = [30, 20, 10];
const iterator = n => {
return Aigle.delay(timer[n])
.then(() => {
order.push(n);
return n;
});
};
Aigle.timesLimit(3, 2, iterator)
.then(array => {
console.log(array); // [0, 1, 2]
console.log(order); // [1, 0, 2]
});
const order = [];
const timer = [30, 20, 10];
const iterator = n => {
return Aigle.delay(timer[n])
.then(() => {
order.push(n);
return n;
});
};
Aigle.timesLimit(3, iterator)
.then(array => {
console.log(array); // [0, 1, 2]
console.log(order); // [2, 1, 0]
});
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
times |
integer | |||
limit |
integer |
<optional> |
8
|
|
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
timesSeries(times, iterator) → {Aigle}
- Source:
Example
const order = [];
const timer = [30, 20, 10];
const iterator = n => {
return Aigle.delay(timer[n])
.then(() => {
order.push(n);
return n;
});
};
Aigle.timesSeries(3, iterator)
.then(array => {
console.log(array); // [0, 1, 2]
console.log(order); // [0, 1, 2]
});
Parameters:
| Name | Type | Description |
|---|---|---|
times |
integer | |
iterator |
function |
Returns:
Returns an Aigle instance
- Type
- Aigle
transform(collection, iterator, accumulatoropt) → {Aigle}
- Source:
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = (result, num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
result[index] = num;
});
};
Aigle.transform(collection, iterator, {})
.then(object => {
console.log(object); // { '0': 1, '1': 4, '2': 2 }
console.log(order); // [1, 2, 4]
});
const order = [];
const collection = [1, 4, 2];
const iterator = (result, num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
result.push(num);
});
};
Aigle.transform(collection, iterator, {})
.then(array => {
console.log(array); // [1, 2, 4]
console.log(order); // [1, 2, 4]
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = (result, num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
result.push(num);
return num !== 2;
});
};
Aigle.transform(collection, iterator, [])
.then(array => {
console.log(array); // [1, 2]
console.log(order); // [1, 2]
});
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
collection |
Array | Object | ||
iterator |
function | ||
accumulator |
Array | Object |
<optional> |
Returns:
Returns an Aigle instance
- Type
- Aigle
transformLimit(collection, limitopt, iterator, accumulatoropt)
- Source:
Examples
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (result, num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
result[index] = num;
});
};
Aigle.transformLimit(collection, 2, iterator, {})
.then(object => {
console.log(object); // { '0': 1, '1': 5, '2': 3, '3': 4, '4': 2 }
console.log(order); // [1, 5, 3, 4, 2]
});
const order = [];
const collection = [1, 5, 3, 4, 2];
const iterator = (result, num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
result.push(num);
});
};
Aigle.transformLimit(collection, 2, iterator, {})
.then(array => {
console.log(array); // [1, 5, 3, 4, 2]
console.log(order); // [1, 5, 3, 4, 2]
});
const order = [];
const collection = { a: 1, b: 5, c: 3, d: 4, e: 2 };
const iterator = (result, num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
result.push(num);
return num !== 4;
});
};
Aigle.transformLimit(collection, 2, iterator, [])
.then(array => {
console.log(array); // [1, 5, 3, 4]
console.log(order); // [1, 5, 3, 4]
});
const order = [];
const collection = { a: 1, b: 5, c: 3, d: 4, e: 2 };
const iterator = (result, num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
result.push(num);
return num !== 4;
});
};
Aigle.transformLimit(collection, iterator, [])
.then(array => {
console.log(array); // [1, 2, 3, 4]
console.log(order); // [1, 2, 3, 4]
});
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
collection |
Array | Object | ||
limit |
integer |
<optional> |
|
iterator |
function | ||
accumulator |
Array | Object |
<optional> |
transformSeries(collection, iterator, accumulatoropt) → {Aigle}
- Source:
Examples
const order = [];
const collection = [1, 4, 2];
const iterator = (result, num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
result[index] = num;
});
};
Aigle.transformSeries(collection, iterator, {})
.then(object => {
console.log(object); // { '0': 1, '1': 4, '2': 2 }
console.log(order); // [1, 4, 2]
});
const order = [];
const collection = [1, 4, 2];
const iterator = (result, num, index) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
result.push(num);
});
};
Aigle.transformSeries(collection, iterator, {})
.then(array => {
console.log(array); // [1, 4, 2]
console.log(order); // [1, 4, 2]
});
const order = [];
const collection = { a: 1, b: 4, c: 2 };
const iterator = (result, num, key) => {
return Aigle.delay(num * 10)
.then(() => {
order.push(num);
result.push(num);
return num !== 4;
});
};
Aigle.transformSeries(collection, iterator, [])
.then(array => {
console.log(array); // [1, 4]
console.log(order); // [1, 4]
});
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
collection |
Array | Object | ||
iterator |
function | ||
accumulator |
Array | Object |
<optional> |
Returns:
Returns an Aigle instance
- Type
- Aigle
until(valueopt, tester, iterator)
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
* |
<optional> |
|
tester |
function | ||
iterator |
function |
whilst(valueopt, tester, iterator)
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
* |
<optional> |
|
tester |
function | ||
iterator |
function |