android - Kotlin 流转换在与另一个运算符后跟时不会发出结果
问题描述
我有一个以下 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))
}
解决方案
推荐阅读
- html - 标签未完全显示在页面上
- c# - 如何使用 AES256 算法从多页文件中提取单个解密页面
- tensorflow - 使用经过训练的模型作为最终层,没有交叉验证问题
- javascript - 获取成功保存在 google cloud firestore 中的文档快照
- sql - Row_Number() 将作为 TSQL 和用户定义函数返回不同的返回值
- kubernetes - 如何在 kubernates pod 中添加交换内存?
- sql - Sql 选择不同的组 2 列
- discord - 如何使其每 30 分钟只能使用一个命令?
- javascript - 屏蔽除用户输入的前四位和后四位之外的信用卡号
- reactjs - 控制台警告由于通过 Formik 字段将其他不相关的道具传递给材质 ui Autocomple