until

    Invoke a function until a test condition is true.

    Usage

    var until = require( '@stdlib/utils/until' );
    

    until( predicate, fcn[, thisArg ] )

    Invokes a function until a predicate function returns true.

    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.

    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

    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 );