create

abstract fun <T> create(block: (CoroutineScope, FlowCollector<T>) -> Job): Flow<T>

从一个可挂起的构建器块中创建一个 Flow。这是创建复杂或动态 Flow 的最强大方式。

block 中,你可以执行任何异步操作,并通过调用 collector.emit() 来向下游发送数据。

Return

一个根据 block 逻辑发出来值的新 Flow

Parameters

T

Flow 发出的值的类型。

block

一个构建器函数,它接收一个 FlowCollector 实例, 你需要在这个函数内部调用 emit 来产生值。 函数本身返回一个 Job,代表整个构建和发射过程的完成状态。