Type Definitions
AsyncFunction()
An "async function" in the context of Async is an asynchronous function with
a variable number of parameters, with the final parameter being a callback.
(function (arg1, arg2, ..., callback) {}
)
The final callback is of the form callback(err, results...)
, which must be
called once the function is completed. The callback should be called with a
Error as its first argument to signal that an error occurred.
Otherwise, if no error occurred, it should be called with null
as the first
argument, and any additional result
arguments that may apply, to signal
successful completion.
The callback must be called exactly once, ideally on a later tick of the
JavaScript event loop.
This type of function is also referred to as a "Node-style async function", or a "continuation passing-style function" (CPS). Most of the methods of this library are themselves CPS/Node-style async functions, or functions that return CPS/Node-style async functions.
Wherever we accept a Node-style async function, we also directly accept an
ES2017 async
function.
In this case, the async
function will not be passed a final callback
argument, and any thrown error will be used as the err
argument of the
implicit callback, and the return value will be used as the result
value.
(i.e. a rejected
of the returned Promise becomes the err
callback
argument, and a resolved
value becomes the result
.)
Note, due to JavaScript limitations, we can only detect native async
functions and not transpilied implementations.
Your environment must have async
/await
support for this to work.
(e.g. Node > v7.6, or a recent version of a modern browser).
If you are using async
functions through a transpiler (e.g. Babel), you
must still wrap the function with asyncify,
because the async function
will be compiled to an ordinary function that
returns a promise.