Repeatedly call task, while test returns true
async_whilst(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_until()
## 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