# Async > Standard library async utilities.
## Usage ```javascript var ns = require( '@stdlib/utils/async' ); ``` #### ns Standard library async utilities. ```javascript var o = ns; // returns {...} ```
- [`anyByRightAsync( collection, [options,] predicate, done )`][@stdlib/utils/async/any-by-right]: test whether at least one element in a collection passes a test implemented by a predicate function, iterating from right to left. - [`anyByAsync( collection, [options,] predicate, done )`][@stdlib/utils/async/any-by]: test whether at least one element in a collection passes a test implemented by a predicate function. - [`bifurcateByAsync( collection, [options,] predicate, done )`][@stdlib/utils/async/bifurcate-by]: split values into two groups according to a predicate function. - [`composeAsync( ...fcn )`][@stdlib/utils/async/compose]: function composition. - [`countByAsync( collection, [options,] indicator, done )`][@stdlib/utils/async/count-by]: group values according to an indicator function and return group counts. - [`doUntilAsync( fcn, predicate, done[, thisArg ] )`][@stdlib/utils/async/do-until]: invoke a function until a test condition is true. - [`doWhileAsync( fcn, predicate, done[, thisArg ] )`][@stdlib/utils/async/do-while]: invoke a function while a test condition is true. - [`everyByRightAsync( collection, [options,] predicate, done )`][@stdlib/utils/async/every-by-right]: test whether all elements in a collection pass a test implemented by a predicate function, iterating from right to left. - [`everyByAsync( collection, [options,] predicate, done )`][@stdlib/utils/async/every-by]: test whether all elements in a collection pass a test implemented by a predicate function. - [`forEachRightAsync( collection, [options,] fcn, done )`][@stdlib/utils/async/for-each-right]: invoke a function once for each element in a collection, iterating from right to left. - [`forEachAsync( collection, [options,] fcn, done )`][@stdlib/utils/async/for-each]: invoke a function once for each element in a collection. - [`functionSequenceAsync( ...fcn )`][@stdlib/utils/async/function-sequence]: function sequence. - [`groupByAsync( collection, [options,] indicator, done )`][@stdlib/utils/async/group-by]: group values according to an indicator function. - [`ifelseAsync( predicate, x, y, done )`][@stdlib/utils/async/if-else]: if a predicate function returns a truthy value, return `x`; otherwise, return `y`. - [`ifthenAsync( predicate, x, y, done )`][@stdlib/utils/async/if-then]: if a predicate function returns a truthy value, invoke `x`; otherwise, invoke `y`. - [`inmapRightAsync( collection, [options,] fcn, done )`][@stdlib/utils/async/inmap-right]: invoke a function for each element in a collection and update the collection in-place, iterating from right to left. - [`inmapAsync( collection, [options,] fcn, done )`][@stdlib/utils/async/inmap]: invoke a function for each element in a collection and update the collection in-place. - [`mapFunAsync( fcn, n, [options,] done )`][@stdlib/utils/async/map-function]: invoke a function `n` times and return an array of accumulated function return values. - [`mapKeysAsync( obj, [options,] transform, done )`][@stdlib/utils/async/map-keys]: map keys from one object to a new object having the same values. - [`mapValuesAsync( obj, [options,] transform, done )`][@stdlib/utils/async/map-values]: map values from one object to a new object having the same keys. - [`noneByRightAsync( collection, [options,] predicate, done )`][@stdlib/utils/async/none-by-right]: test whether all elements in a collection fail a test implemented by a predicate function, iterating from right to left. - [`noneByAsync( collection, [options,] predicate, done )`][@stdlib/utils/async/none-by]: test whether all elements in a collection fail a test implemented by a predicate function. - [`reduceRightAsync( collection, initial, [options,] reducer, done )`][@stdlib/utils/async/reduce-right]: apply a function against an accumulator and each element in a collection and return the accumulated result, iterating from right to left. - [`reduceAsync( collection, initial, [options,] reducer, done )`][@stdlib/utils/async/reduce]: apply a function against an accumulator and each element in a collection and return the accumulated result. - [`waterfall( fcns, clbk[, thisArg] )`][@stdlib/utils/async/series-waterfall]: execute functions in series, passing the results of one function as arguments to the next function. - [`someByRightAsync( collection, n, [options,] predicate, done )`][@stdlib/utils/async/some-by-right]: test whether a collection contains at least `n` elements which pass a test implemented by a predicate function, iterating from right to left. - [`someByAsync( collection, n, [options,] predicate, done )`][@stdlib/utils/async/some-by]: test whether a collection contains at least `n` elements which pass a test implemented by a predicate function. - [`tabulateByAsync( collection, [options,] indicator, done )`][@stdlib/utils/async/tabulate-by]: generate a frequency table according to an indicator function. - [`trycatchAsync( x, y, done )`][@stdlib/utils/async/try-catch]: if a function does not return an error, invoke a callback with the function result; otherwise, invoke a callback with a value `y`. - [`trythenAsync( x, y, done )`][@stdlib/utils/async/try-then]: if a function does not return an error, invoke a callback with the function result; otherwise, invoke a second function. - [`untilAsync( predicate, fcn, done[, thisArg ] )`][@stdlib/utils/async/until]: invoke a function until a test condition is true. - [`whileAsync( predicate, fcn, done[, thisArg ] )`][@stdlib/utils/async/while]: invoke a function while a test condition is true.
## Examples ```javascript var objectKeys = require( '@stdlib/utils/keys' ); var ns = require( '@stdlib/utils/async' ); console.log( objectKeys( ns ) ); ```