{{alias}}( predicate, x, y, done ) If a predicate function returns a truthy value, returns `x`; otherwise, returns `y`. A predicate function is provided a single argument: - clbk: callback to invoke upon predicate completion The callback function accepts two arguments: - error: error object - bool: condition used to determine whether to invoke `x` or `y` The `done` callback is invoked upon function completion and is provided at most two arguments: - error: error object - result: either `x` or `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 ---------- predicate: Function Predicate function. x: any Value to return if a condition is truthy. y: any Value to return if a condition is falsy. done: Function Callback to invoke upon completion. Examples -------- > function predicate( clbk ) { ... setTimeout( onTimeout, 0 ); ... function onTimeout() { ... clbk( null, true ); ... } ... }; > function done( error, result ) { ... if ( error ) { ... throw error; ... } ... console.log( result ); ... }; > {{alias}}( predicate, 'beep', 'boop', done ) 'beep' See Also --------