Repeatedly call task until it its test function returns TRUE
async_until(test, task, ...)
Deferred value, that is resolved when the iteration is done.
Other async control flow:
async_backoff()
,
async_reflect()
,
async_retry()
,
async_retryable()
,
async_sequence()
,
async_try_each()
,
async_whilst()
## Keep calling until it "returns" a number less than < 0.1
calls <- 0
number <- Inf
synchronise(async_until(
function() number < 0.1,
function() {
calls <<- calls + 1
number <<- runif(1)
}
))
#> [1] 0.06521611
calls
#> [1] 10