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