Asynchronous Array.reduceRight
. The reduceRight()
method applies a function against an accumulator and each value of the array (from right-to-left) to reduce it to a single value.
$ npm install reduce-right-async
reduceRightAsync(array, iteratee, done[, initialValue])
Parameters
-
array
Array - The array to reduce. -
iteratee
Function - The function to execute on each value in the array, taking five arguments:-
prev
Any - The value previously returned in the last invocation of the iteratee, orinitialValue
if supplied. -
curr
Any - The current element being processed in the array. -
n
Integer - The index of the current element being processed in the array. -
arr
Array - The arrayreduceRightAsync
was called upon. -
next
Function - The function to call when you are ready to advance to the next element in the array.
-
-
done
Function - The function called when the reduce has finished, taking one argument:result
Any - The value that results from the reduction.
-
initialValue
Any (Optional) - Value to use as the first argument to the first call of theiteratee
.
More information on how reduceRight
works.
-
Asynchronously sum all the values of an array.
reduceRightAsync([0, 1, 2, 3], (prev, curr, n, arr, next) => { doSomethingAsync(() => { next(prev + curr); }); }, result => { // result == 6 }));
-
Asynchronously flatten an array of arrays,
reduceRightAsync([[0, 1], [2, 3], [4, 5]], (prev, curr, n, arr, next) => { doSomethingAsync(() => { next(prev.concat(curr)); }); }, result => { // result is [4, 5, 2, 3, 0, 1] }));
-
Asynchronously concatenate all words within an array together starting from an initial value of
"baz"
.reduceRightAsync(['foo', 'bar']], (prev, curr, n, arr, next) => { doSomethingAsync(() => { next(prev + curr); }); }, result => { // result is "bazbarfoo" }, 'baz'));