content
当 content 的返回值为 reactive api 相关或异步结果相关的内容,且当前 EventResult 实例为 CollectableReactivelyResult 类型的时候, 处理器应当对这类相关的api进行收集。这通常使用在Java使用者或者与其他reactive API配合使用的时候。
比如当你的函数返回了 flux, 那么它将会被收集为 List 后重新作为 content 并通过 collected 构建为一个新的 EventResult. 同样的,如果你返回的是 kotlinx.coroutines.flow.Flow, 也会在函数返回后进行收集。
收集行为会在返回值返回后(某个监听器处理结束后, 下一个监听器开始执行前)立即执行, 而不是等待所有监听器执行结束后。
支持的收集类型有:
java.util.concurrent.CompletionStage
(java.util.concurrent.CompletableFuture
) (JVM)kotlinx.coroutines.flow.Flow (会被收集为 List)
kotlin.js.Promise
(JS)org.reactivestreams.Publisher
(JVM) (不是reactor.core.publisher.Mono
或reactor.core.publisher.Flux
时: 会被收集为 List)reactor.core.publisher.Flux
(JVM) (会被收集为 List)reactor.core.publisher.Mono
(JVM)io.reactivex.CompletableSource
(JVM) (会挂起,但是结果始终为null
)io.reactivex.SingleSource
(JVM)io.reactivex.MaybeSource
(JVM)io.reactivex.ObservableSource
(JVM) (会被收集为 List)io.reactivex.Flowable
(JVM) (会被收集为 List)io.reactivex.rxjava3.core.CompletableSource
(JVM)io.reactivex.rxjava3.core.SingleSource
(JVM)io.reactivex.rxjava3.core.MaybeSource
(JVM)io.reactivex.rxjava3.core.ObservableSource
(JVM) (会被收集为 List)io.reactivex.rxjava3.core.Flowable
(JVM) (会被收集为 List)
其他详情请见 kotlinx-coroutines-reactive .
当响应式结果被收集后,后续流转的 EventResult 可能会与当前类型不同。更多参考 collected。