Repeatedly call task, while test returns true

async_whilst(test, task, ...)

Arguments

test

Synchronous test function.

task

Asynchronous function to call repeatedly.

...

Arguments to pass to task.

Value

Deferred value, that is resolved when the iteration is done.

See also

Examples

## Keep calling while result is bigger than 0.1
calls <- 0
number <- Inf
synchronise(async_whilst(
  function() number >= 0.1,
  function() {
    calls <<- calls + 1
    number <<- runif(1)
  }
))
#> [1] 0.02806097
calls
#> [1] 12