我有一个以下 Kotlin 流程,我需要做的是从 getUseCase.getResult() 发出值,然后启动另一个依赖于 getResults() 的流程并发出更多值。getContentUseCase.getContent().transform 中的代码按预期执行并发出值,但是 getUseCase.getResult().transform 中的值永远不会发出。
但是,当我删除 flatMapConcat 运算符及其内容时,我会获取从 getUseCase.getResult().transform 发出的值。不知道发生了什么,但我怎样才能在两个流程中进行工作发射?
getUseCase.getResult().transform { response ->
when (response.networkState) {
NetworkState.Success -> {
val contentList = response.contentList
val result = ResultDomainModel(networkState = NetworkState.Success,
contentList = contentList)
emit(smartSearchContentListResult)
}
else -> emit(ResultDomainModel(networkState = contentListResponse.networkState))
}
}.flatMapConcat { response ->
val contentList = response.contentList
val contentItemList = arrayListOf<SmartSearchContentDomainModel>()
contentList.withIndex().asFlow().map { content ->
getContentUseCase.getContent().transform { contentResponse ->
contentItemList[content.index] = contentResponse
emit(ResultDomainModel(networkState = NetworkState.Success,
contentList = contentList,
contentItems = contentItemList))
}