joinAll

abstract fun joinAll(jobs: List<Job>): Deferred<Unit>

挂起直到指定列表中的所有 Job 都完成(无论是成功、失败还是被取消)。

这是一个用于同步的辅助函数,功能类似于 jobs.forEach { it.join() },但它会并发地等待所有 Job。

awaitAll 的关键区别在于:

  • joinAll 作用于 Job 对象,不关心返回值。

  • joinAll 不会因为列表中的某个 Job 失败而失败。它会始终等待所有 Job 都结束后才完成。

这在“发射并忘记”(fire-and-forget)一组任务后,需要等待它们全部结束再执行清理或后续逻辑的场景中非常有用。

Return

一个 Deferred,当所有指定的 jobs 都完成后,这个 Deferred 也会完成。

Parameters

jobs

一个包含多个 Job 对象的列表(由于 Deferred 继承自 Job,也可以传入 Deferred 列表)。