kotlin reactjs 流:合并通量数据到for循环

ogq8wdun  于 2023-01-21  发布在  Kotlin
关注(0)|答案(1)|浏览(106)

我使用readEvents函数返回事件流,在下面的代码中,我尝试合并所有事件,因此使用mergeWith,但allEventFlux始终返回空

val ids = repository.findIds().map { it.ekycId }
    val allEventFlux = Flux.empty<Event>()
    for (id in ids) {
        val events: Flux<Event> = eventStore.readEvents(id)
        allEventFlux.mergeWith(events)
    }
egdjgwm8

egdjgwm81#

您是否尝试过:

Flux.fromIterable(repository.findIds())
    .map { it.ekycId }
    .flatMap { id -> eventStore.readEvents(id) }

注:您当前的示例无法运行,因为"merge"merge * in-place *。它创建了一个新示例,必须将其设置为一个变量,因此至少您应该对示例进行如下修改:

val eventFlux = ids.fold(Flux.empty<Event>()) { all, id -> all.mergeWith(eventStore.readEvents(id)) }

相关问题