如何在 Kotlin Flow 中过滤列表

2023-12-31

我正在使用替换当前的实现RxJava to Coroutines and Flow。我在使用一些时遇到一些问题Flow运营商。

我正在尝试过滤 a 中的项目列表Flow在提供收集之前。 (Flow<List<TaskWithCategory>>)

这是关于的示例Rx2:

        repository.findAllTasksWithCategory()
            .flatMap {
                Flowable.fromIterable(it)
                    .filter { item -> item.task.completed }
                    .toList()
                    .toFlowable()

在上面的实现中,我提供了一个列表TaskWithCategory过滤依据Task已经完成的。

我怎样才能实现这个使用Flow?


鉴于唯一使用的运算符是filter内部的 flowable 是不必要的,使得流的实现非常简单:

repository.findAllTasksWithCategoryFlow()
    .map { it.filter { item -> item.task.completed } }

如果内部转换更多地涉及(让我们使用transform: suspend (X) -> TaskWithCategory):

repository.findAllTasksWithCategoryFlow()
    // Pick according to desired backpressure behavior
    .flatMap(Latest/Concat/Merge) {
        // Scope all transformations together
        coroutineScope {
            it.map { item ->
                // Perform transform in parallel
                async {
                    transform(item)
                }
            }.awaitAll() // Return when all async are finished.
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Kotlin Flow 中过滤列表 的相关文章

随机推荐

  • 正则表达式查找引号之间的值

    我有一个正则表达式来查找引号之间的值 1 1 这工作得很好 但是 如果引号之间有双引号 那么它会失败并也会将它们分开 例如 value1 value2 value with is here value4 我需要像这样的输出 value1 v
  • Zend Framework 2 中服务中的实体管理器

    我为我的模块编写了自定义服务 该服务提供公共静态函数来验证给定的令牌 现在我想实现另一个公共静态函数来检查 Doctrine Entity 是否存在 对于这种情况 我需要服务中的对象管理器或服务定位器 class ApiService co
  • 将 .pdf 文件更改为 .png Mac OS 10.3 的 shell 脚本

    我想在 Mac OS 10 3 上制作一个脚本 将 pdf 转换为 png 我一直在环顾四周 但不确定是否可能 我一直在阅读有关 sips 命令的内容 但它似乎在 10 3 上不可用 或者至少在这个版本上不可用 我在终端输入 man sip
  • 当我们调整窗口大小时,Container 中的元素如何调整?

    下面是一个窗口的代码 当用户单击一个按钮时 该窗口会更改颜色 并在单击另一个按钮时更改标签的文本 它有两个按钮 一个用于保存按钮的面板 一个标签和一个用于图形的面板 概念解释 首先 我添加了label to the North的一部分fra
  • BigQuery - 创建外部表

    How use CREATE EXTERNAL TABLEBigQuery 中的 DDL 语句 另一个大数据仓库解决方案 如 SnowFlake 和 Hive Based Presto AWS Athena 都有它 而且它非常有用 更新 1
  • 使用 AJAX 提交 HTML 5 表单?

    我在使用 ajax 提交表单时遇到了一些麻烦 由于 HTML5 表单在输入标记中已经具有 必需 验证 因此不需要 javascript 验证检查 但是 正因为如此 我不知道如何使用 javascript jQUERY 在通过这些验证检查后提
  • 如何从Android应用程序安全地使用GCP服务帐户?

    我正在开发一个使用 Firebase 身份验证和 GCP Pubsub 的 Android 应用程序 Java 为了连接到 Pubsub 我当前使用存储在项目中 JSON 文件中的服务帐户密钥 但这在生产环境中似乎并不安全 因为它暴露了我的
  • Maatwebsite 导入在 ubuntu 中不起作用

    当我尝试在 Ubuntu 中的服务器上使用 Maatwebsite 3 1 版本导入 Excel 工作表时 出现此类错误 Error Maatwebsite Excel Exceptions NoTypeDetectedException
  • 节点 http 服务器每秒可以处理多少个请求而不需要对任何请求进行排队?

    有谁知道节点 http 服务器的基本单个实例每秒可以处理多少个请求 而无需排队任何请求 实际上 我需要编写一个nodejs应用程序 它应该能够在100毫秒内一致响应大约数千个传入请求 我正在尝试在 4 个 cpus 服务器中测试它并在集群模
  • 如何找到浏览器的代理设置?

    我正在为 Windows 编写一个命令行工具 它使用 libcurl 从互联网下载文件 显然 当用户位于代理服务器后面时 下载不起作用 因为需要配置代理 然而 我希望我的工具尽可能简单 并且不必给用户带来配置代理的负担 我的工具甚至没有配置
  • SELECT 类型查询是唯一可以嵌套的类型吗?

    是否可以将非选择查询 更新 插入 删除 嵌入到另一个查询中 类似于 选择内的插入 A single query select such and such from where insert into 基本答案 有CTEs 通用表表达式 ht
  • 如何从“workflow.Context”获取“context.Context”?

    我正在实现一个 Cadence 工作流程 需要使用以下命令调用函数context Context参数 我该如何获得context Context来自workflow Context 难道这只是一个问题ctx context Context
  • Unity HoloLens 应用程序作为 Windows 应用程序而不是 AR 执行

    我正在使用以下工具构建 HoloLens Unity 应用程序 统一 2018 3 14f1 视觉工作室 2017 Microsoft MixedReality Toolkit Unity Foundation v2 0 0 RC1 Ref
  • 动态表单上的 MVC 模型验证?

    我有以下模型 public class FileModel public int Id get set Required ErrorMessage Required StringLength 100 ErrorMessage Max is
  • 在 Android 中添加自定义字体到主题

    有没有办法在 Android 的主题中添加自定义字体 我读过了快速提示 自定义 Android 字体 http mobile tutsplus com tutorials android customize android fonts 但这
  • Uint8Array 到 ArrayBuffer

    所以我有一个 ArrayBuffer 它是我用新的 HTML5 文件阅读器作为 ArrayBuffer 读取的文件的文件内容 并且我可以通过执行以下操作将 ArrayBuffer 转换为 Uint8Array ab established
  • MVC Core2 中的 Ajax 调用错误请求

    我正在将一个网站折射到 MVC Core 2 对于我的大多数 Ajax 调用 我一直使用 Get 速记 没有任何问题 我有一个 AJAX 调用需要使用 ajax 并且由于某种原因我不断收到错误的请求错误 请记住 此代码当前正在 aspx 网
  • 如何更改列表视图文本颜色

    在我的应用程序中 我想更改列表视图文本颜色 在本例中 我使用 XML 文件进行列表视图 是否可以 如果是 请举例说明 性别 xml
  • C 中变量名后的冒号[重复]

    这个问题在这里已经有答案了 可能的重复 结构体声明中的冒号是什么意思 例如 1 7 16 或 32 https stackoverflow com questions 1604968 what does a colon in a struc
  • 如何在 Kotlin Flow 中过滤列表

    我正在使用替换当前的实现RxJava to Coroutines and Flow 我在使用一些时遇到一些问题Flow运营商 我正在尝试过滤 a 中的项目列表Flow在提供收集之前 Flow