doUntil
Invoke a function until a test condition is true.
Usage
var doUntil = require( '@stdlib/utils/do-until' );
doUntil( fcn, predicate[, thisArg ] )
Invokes a function until a predicate function returns true. Note that the predicate function is evaluated after executing fcn; thus, fcn always executes at least once.
function predicate( i ) { return ( i >= 5 ); } function beep( i ) { console.log( 'boop: %d', i ); } doUntil( beep, predicate ); /* => boop: 0 boop: 1 boop: 2 boop: 3 boop: 4 */
Both the predicate function and the function to invoke are provided a single argument:
- i: iteration number (starting from zero).
To set the function execution context for the invoked function, provide a thisArg.
function predicate( i ) { return ( i >= 5 ); } function count() { this.count += 1; } var context = { 'count': 0 }; doUntil( count, predicate, context ); console.log( context.count ); // => 5
Examples
var randu = require( '@stdlib/random/base/randu' ); var doUntil = require( '@stdlib/utils/do-until' ); function predicate() { return ( randu() <= 0.05 ); } function log( i ) { console.log( i ); } doUntil( log, predicate );
See Also
@stdlib/utils/async/do-until: invoke a function until a test condition is true.@stdlib/utils/do-until-each: until a test condition is true, invoke a function for each element in a collection.@stdlib/utils/do-while: invoke a function while a test condition is true.@stdlib/utils/until: invoke a function until a test condition is true.@stdlib/utils/while: invoke a function while a test condition is true.