有没有一种方法可以将monad综合与Kotlin Flow一起使用



Kotlin协程和Arrow是避免嵌套平面图的好方法,在Kotlin中引入了一元理解。然而,Kotlin的Flow类型仍然依赖于声明性平面映射,因此我们进入了直接风格和声明性风格的混合:

override suspend fun findAll(page: Pageable): Either<BusinessException, Flow<PageElement<ClientOut>>> = either {
val count = clientRepository.count().awaitSingle().bind()
return clientRepository.findByIdNotNull(page).asFlow()
.flatMapMerge { client ->
flow { emit(mapDetailedClientOut(client)) }
}
}

CCD_ 2已经被束缚在CCD_。然而,似乎没有办法对Flow做同样的事情,迫使我们嵌套一个flatmapMerge()

有没有办法做到这一点,或者计划在不久的将来以某种方式将其纳入其中?

遗憾的是,目前没有办法为KotlinXFlow数据类型建立综合,因为Kotlin中的Coroutines只支持单次发射/bind

因此,只能为具有0..1元素(如EitherNullable(的数据类型构建comprension,而不能为FlowList数据类型之类的0..N构建comprensions。

相关内容

  • 没有找到相关文章

最新更新