loopWithTimeout

abstract fun loopWithTimeout(timeoutMillis: Long, body: (CoroutineScope) -> Deferred<Boolean>): Deferred<Unit>

带有超时限制的异步顺序循环。

该函数结合了 loopwithTimeout 的功能。它会顺序执行迭代,每次迭代必须等待上一次迭代完成。 如果整个循环的执行时间超过了指定的 timeoutMillis,循环将终止,并且返回的 Deferred 将以超时异常失败。

Return

一个 Deferred。如果循环在超时前因 body 返回 false 而终止,则成功完成; 如果超时,则以 TimeoutCancellationException 失败。

Parameters

timeoutMillis

整个循环允许执行的最大毫秒数。

body

一个 lambda 函数,在每次迭代时调用。它执行异步操作并返回一个 Deferred<Boolean>: - 结果为 true:继续下一次迭代。 - 结果为 false:正常终止循环。