
{{alias}}( fcn, n, [options,] done )
    Invokes a function `n` times and returns an array of accumulated function
    return values.

    For each iteration, the provided function is invoked with two arguments:

    - `index`: invocation index (starting from zero)
    - `next`: callback to be invoked upon function completion

    The `next` callback accepts two arguments:

    - `error`: error argument
    - `result`: function result

    If a provided function calls the `next` callback with a truthy `error`
    argument, the function suspends execution and immediately calls the `done`
    callback for subsequent `error` handling.

    Execution is *not* guaranteed to be asynchronous. To guarantee asynchrony,
    wrap the `done` callback in a function which either executes at the end of
    the current stack (e.g., `nextTick`) or during a subsequent turn of the
    event loop (e.g., `setImmediate`, `setTimeout`).

    Parameters
    ----------
    fcn: Function
        Function to invoke.

    n: integer
        Number of times to invoke a function.

    options: Object (optional)
        Function options.

    options.limit: integer (optional)
        Maximum number of pending invocations. Default: Infinity.

    options.series: boolean (optional)
        Boolean indicating whether to allow only one pending invocation at a
        time. Default: false.

    options.thisArg: any (optional)
        Execution context.

    done: Function
        A callback invoked upon executing a provided function `n` times or upon
        encountering an error.

    Examples
    --------
    // Basic usage:
    > function fcn( i, next ) {
    ...     setTimeout( onTimeout, 0 );
    ...     function onTimeout() {
    ...         next( null, i );
    ...     }
    ... };
    > function done( error, arr ) {
    ...     if ( error ) {
    ...         throw error;
    ...     }
    ...     console.log( arr );
    ... };
    > {{alias}}( fcn, 10, done )
    [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

    // Limit number of concurrent invocations:
    > function fcn( i, next ) {
    ...     setTimeout( onTimeout, 0 );
    ...     function onTimeout() {
    ...         next( null, i );
    ...     }
    ... };
    > function done( error, arr ) {
    ...     if ( error ) {
    ...         throw error;
    ...     }
    ...     console.log( arr );
    ... };
    > var opts = { 'limit': 2 };
    > {{alias}}( fcn, 10, opts, done )
    [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

    // Sequential invocation:
    > function fcn( i, next ) {
    ...     setTimeout( onTimeout, 0 );
    ...     function onTimeout() {
    ...         next( null, i );
    ...     }
    ... };
    > function done( error, arr ) {
    ...     if ( error ) {
    ...         throw error;
    ...     }
    ...     console.log( arr );
    ... };
    > var opts = { 'series': true };
    > {{alias}}( fcn, 10, opts, done )
    [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]


{{alias}}.factory( [options,] fcn )
    Returns a function which invokes a function `n` times and returns an array
    of accumulated function return values.

    Parameters
    ----------
    options: Object (optional)
        Function options.

    options.limit: integer (optional)
        Maximum number of pending invocations. Default: Infinity.

    options.series: boolean (optional)
        Boolean indicating whether to allow only one pending invocation at a
        time. Default: false.

    options.thisArg: any (optional)
        Execution context.

    fcn: Function
        Function to invoke.

    Returns
    -------
    out: Function
        A function which invokes a function `n` times and returns an array of
        accumulated function return values.

    Examples
    --------
    > function fcn( i, next ) {
    ...     setTimeout( onTimeout, 0 );
    ...     function onTimeout() {
    ...         next( null, i );
    ...     }
    ... };
    > var opts = { 'series': true };
    > var f = {{alias}}.factory( opts, fcn );
    > function done( error, arr ) {
    ...     if ( error ) {
    ...         throw error;
    ...     }
    ...     console.log( arr );
    ... };
    > f( 10, done )
    [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

    See Also
    --------

