@stdlib/utils
Version:
Standard utilities.
79 lines (60 loc) • 2.23 kB
Plain Text
{{alias}}( predicate, x, y, done )
If a predicate function returns a truthy value, invokes `x`; otherwise,
invokes `y`.
The predicate function is provided a single argument:
- clbk: callback to invoke upon predicate function completion.
The predicate function callback accepts two arguments:
- error: error object.
- bool: condition used to determine whether to invoke `x` or `y`.
Both `x` and `y` are 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 `done` callback is invoked with its
first argument as `null` and all other provided arguments.
If the error argument is truthy, the `done` callback is invoked with only an
error argument.
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
----------
predicate: Function
Predicate function.
x: Function
Function to invoke if a condition is truthy.
y: Function
Function to invoke if a condition is falsy.
done: Function
Callback to invoke upon completion.
Examples
--------
> function predicate( clbk ) {
... setTimeout( onTimeout, 0 );
... function onTimeout() {
... clbk( null, false );
... }
... };
> function x( clbk ) {
... setTimeout( onTimeout, 0 );
... function onTimeout() {
... clbk( null, 'beep' );
... }
... };
> function y( clbk ) {
... setTimeout( onTimeout, 0 );
... function onTimeout() {
... clbk( null, 'boop' );
... }
... };
> function done( error, result ) {
... if ( error ) {
... throw error;
... }
... console.log( result );
... };
> {{alias}}( predicate, x, y, done )
'boop'
See Also
--------