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。