loopEach

abstract fun loopEach(bodies: List<(CoroutineScope) -> Deferred<Boolean>>): Deferred<Int>

异步地执行一个顺序索引循环:反复遍历 bodies 列表中的每一个函数, 直到某一个函数返回的 Deferred 结果为 false

循环是无限的:如果所有函数一直返回 true,它永远不会主动停止, 除非外部通过取消当前协程/作用域来中断它。

这适用于轮询多个条件,一旦任一条件变为 false 就退出并返回该条件的索引。

Return

一个 Deferred,当某个 body 返回 false 时完成, 结果为该 body 在列表中的索引(从 0 开始)。

Parameters

bodies

一个由异步检查函数组成的列表,每个函数接收 CoroutineScope 作为接收者, 并返回一个 Deferred。返回 true 表示条件满足,继续循环; 返回 false 表示条件失败,循环终止。