78 lines
2.4 KiB
Plaintext
78 lines
2.4 KiB
Plaintext
|
|
{{alias}}( x, y, done )
|
|
If a function does not return an error, invokes a callback with the function
|
|
result; otherwise, invokes a second function `y`.
|
|
|
|
A function `x` is provided a single argument:
|
|
|
|
- clbk: callback to invoke upon function completion
|
|
|
|
The callback function accepts any number of arguments, with the first
|
|
argument reserved for providing an error.
|
|
|
|
If the error argument is falsy, the function invokes a `done` callback with
|
|
its first argument as `null` and all other provided arguments.
|
|
|
|
If the error argument is truthy, the function invokes a function `y`. The
|
|
number of arguments provided to `y` depends on the function's length. If `y`
|
|
is a unary function, `y` is provided a single argument:
|
|
|
|
- clbk: callback to invoke upon function completion
|
|
|
|
Otherwise, `y` is provided two arguments:
|
|
|
|
- error: the error from `x`
|
|
- clbk: callback to invoke upon function completion
|
|
|
|
The callback function accepts any number of arguments, with the first
|
|
argument reserved for providing an error.
|
|
|
|
If the error argument is falsy, the `done` callback is invoked with its
|
|
first argument equal to `null` and all other arguments provided by `y`.
|
|
|
|
If the error argument is truthy, the `done` callback is invoked with only
|
|
the error argument provided by `y`.
|
|
|
|
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
|
|
----------
|
|
x: Function
|
|
Function to invoke.
|
|
|
|
y: Function
|
|
Function to invoke if `x` returns an error.
|
|
|
|
done: Function
|
|
Callback to invoke upon completion.
|
|
|
|
Examples
|
|
--------
|
|
> function x( clbk ) {
|
|
... setTimeout( onTimeout, 0 );
|
|
... function onTimeout() {
|
|
... clbk( new Error( 'beep' ) );
|
|
... }
|
|
... };
|
|
> function y( clbk ) {
|
|
... setTimeout( onTimeout, 0 );
|
|
... function onTimeout() {
|
|
... clbk( null, 'boop' );
|
|
... }
|
|
... };
|
|
> function done( error, result ) {
|
|
... if ( error ) {
|
|
... throw error;
|
|
... }
|
|
... console.log( result );
|
|
... };
|
|
> {{alias}}( x, y, done )
|
|
'boop'
|
|
|
|
See Also
|
|
--------
|
|
|