content

open override val content: Any?(source)

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.Deferred (不支持 kotlinx.coroutines.Job)

  • kotlinx.coroutines.flow.Flow (会被收集为 List)

  • kotlin.js.Promise (JS)

  • org.reactivestreams.Publisher (JVM) (不是 reactor.core.publisher.Monoreactor.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