# until > Invoke a function until a test condition is true.
## Usage ```javascript var until = require( '@stdlib/utils/until' ); ``` #### until( predicate, fcn\[, thisArg ] ) Invokes a `function` until a `predicate` function returns `true`. ```javascript function predicate( i ) { return ( i >= 5 ); } function beep( i ) { console.log( 'boop: %d', i ); } until( predicate, beep ); /* => 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`. ```javascript function predicate( i ) { return ( i >= 5 ); } function count() { this.count += 1; } var context = { 'count': 0 }; until( predicate, count, context ); console.log( context.count ); // => 5 ```
## Examples ```javascript var randu = require( '@stdlib/random/base/randu' ); var until = require( '@stdlib/utils/until' ); function predicate() { return ( randu() <= 0.05 ); } function log( i ) { console.log( i ); } until( predicate, log ); ```