transform
open fun <R> transform(scope: CoroutineScope, context: CoroutineContext, transformer: SuspendReserve.Transformer<Flow<T>, R>): R(source)
使用 SuspendReserve.Transformer 对 flow 的值进行转化处理。 例如在 JVM 中,可以使用 SuspendReserves.flux()
转化为 reactor.core.publisher.Flux
或使用 SuspendReserves.list()
转化为 List。
val flux: Flow<Int> = ...
val list = flux.transform(transformer = flux())
Content copied to clipboard
注意:部分转化器可能会要求运行时存在一些依赖,请注意参考它们的注释与说明。
建议主要使用 transform 转化为其他响应式类型,例如 reactor.core.publisher.Flux
。 对列表等普通的集合类型可以选择其他可能有更多判断与优化的API, 例如 Java 使用者可选择 Collectables.toList
。
Parameters
scope
提供给 SuspendReserve.Transformer 的作用域。默认会使用 GlobalScope。
context
提供给 SuspendReserve.Transformer 的作用域。默认会使用 EmptyCoroutineContext。
transformer
转化器实现。
使用 SuspendReserve.Transformer 对 flow 的值进行转化处理。 更多说明参考全量参数的重载函数。
默认使用 GlobalScope 作为协程作用域、使用 EmptyCoroutineContext 作为协程上下文。
Java 友好的接口重载函数