loop With Timeout
abstract fun loopWithTimeout(timeoutMillis: Long, body: (CoroutineScope) -> Deferred<Boolean>): Deferred<Unit>
带有超时限制的异步顺序循环。
该函数结合了 loop 和 withTimeout 的功能。它会顺序执行迭代,每次迭代必须等待上一次迭代完成。 如果整个循环的执行时间超过了指定的 timeoutMillis,循环将终止,并且返回的 Deferred 将以超时异常失败。
Return
一个 Deferredbody 返回 false 而终止,则成功完成; 如果超时,则以 TimeoutCancellationException 失败。
Parameters
timeout Millis
整个循环允许执行的最大毫秒数。
body
一个 lambda 函数,在每次迭代时调用。它执行异步操作并返回一个 Deferred<Boolean>: - 结果为 true:继续下一次迭代。 - 结果为 false:正常终止循环。