如何使用项目反应器实现调用重复,直到满足特定条件?

2023-12-12

有没有什么方法可以使用项目反应器来做这样的事情?

fetchSystemUpdates() // return Mono<List<>>
   .repeatUntil(List::isNotEmpty)
   .map(...) // when its not empty do some processing


实现它的一种方法是使用expand重复请求直到收到非空列表并过滤掉下游的空结果。

fetchSystemUpdates()
        // repeat until results are not empty
        .expand(res -> {
            if (!res.isEmpty()) {
                return Mono.empty(); // stop "repeat loop"
            }

            return fetchSystemUpdates()
                // add delay before making subsequent call  
                .delaySubscription(Duration.ofMillis(1000));
        })
        .filter(res -> !res.isEmpty()) // filter out non-empty results
        .single() // convert Flux to Mono
        .map(...); // when its not empty do some processing
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用项目反应器实现调用重复,直到满足特定条件? 的相关文章

随机推荐

  • 本地函数相互调用

    我有两个偶尔互相调用的函数 它们对于使用它们构建另一个函数的模块来说是本地的 该模块与这段代码有点相似 local function iseven n if n 1 then return false else return isodd n
  • 搜索时获取数组超出索引范围异常

    我有一个应用程序 其中我将 json 中的数据显示到列表视图中 现在想要在列表视图上应用搜索功能 但是每当我在编辑框中输入某些内容时 就会出现数组索引超出范围的错误 请帮我解决这个问题 主页活动 public class HomeActiv
  • 如何根据 R 中的 regexpr() 结果创建 TRUE 或 FALSE 列?

    我正在通过一列搜索来寻找模式 reg lt regexpr pattern Data column1 View reg reg 给了我一些数字 如下所示 1 43 15 2 11 19 22 28 20 11 37 32 11 32 20
  • 为什么重复加载和保存时 ImageIO 不保留 JPEG 数据?

    最初我想尝试是否可以从 JPEG 图像重建编辑数据 因为它是一种有损图像格式并且像素值扩散到相邻像素中 为了测试保存和加载 JPEG 图像是否可靠 我编写了以下程序 该程序重复保存和加载 JPEG 图像 直到到达以前见过的图像 这是代码 p
  • Mysql查询根据条件选择不同记录?

    我有这样的表结构 ext no value 我想根据条件选择不同的记录 比如当计数时ext no is 超过两个 and 当且仅当所有这些ext no value为零 我想要下面给出的预期结果 比如 如何编写 mysql 查询这个 任何帮助
  • 类型擦除在 Java Map 类中不起作用

    我使用javap反编译了Map类 类定义仍然显示泛型类型 K 和 V 的存在 这应该已经被类型擦除的概念删除了 为什么这种情况没有发生 javap verbose java util Map Classfile jar file opt j
  • 覆盖-类属性- getter

    我正在定义一个 Debug 类 如下所示 debug False class Debug DrawOutlines True InvinciblePlayer True 我想覆盖Debug类 以便如果 debug 为 False 则 Deb
  • 重力右侧和末端之间的差异[重复]

    这个问题在这里已经有答案了 我正在制作一个 xml 文件 并应用重力来使视图内容将其移动到窗口的最右侧 但我将重力视为右侧和末端 那么 两者之间的实际区别是什么以及在哪里使用哪一个 在阿拉伯语 波斯语和所有 rtl 从右到左 语言环境中 e
  • 在另一种形式上调用过程?

    我确信以前有人问过这个问题 但我似乎找不到 我使用下面的代码显示 MS Access 数据库中的图像 但是 我想知道如何执行以下操作 是否可以采用下面的过程并以另一种形式 调用 它 Scenario 如果我有必须从 3 个不同表单上的按钮调
  • 用于命令行脚本的 Cookbook GUI 界面

    我有一个命令行 Python 脚本 可以很好地在给定一些参数的情况下将一种文件转换为另一种文件 现在我想将其部署给我的一些可能不知道命令行是什么的同事 我可以花几个小时来尝试确定哪个 Python GUI 工具包是 最好的 然后学习如何做我
  • 使用随时间变化的任意布尔条件过滤 Touch.FrameReported IObservable

    我一直在尝试 Windows Phone 7 中的响应式扩展 RX 并且非常接近可行的解决方案 但遇到了一个小细节 我正在尝试使用处理原始触摸事件Touch Frame报告 and Observable FromEvent 有点教育追求 更
  • dagger2 和 kotlin 的 Android 单元测试问题

    我试图在 android 的测试文件夹中创建一个 dagger 组件接口 但是在 Dagger 完成生成的类后 它显示错误 无法访问 TestComponent 它是 com example animals di DaggerTestApp
  • 如何创建winform登录对话框并保持循环

    创建一个登录表单 如果凭据正确 该登录表单将进入主表单 这是基本的伪代码 ShowLoginForm if DialogResult OK CheckCredentials if credentials VALID ShowMainForm
  • CSV 文件未在 WordPress 中上传

    我无法在 WordPress 网站上上传 CSV 文件 错误 抱歉 出于安全原因不允许使用此文件类型 检查下图 网站链接 我相信 错误中清楚地提到了所有内容 并且您也强调了这一点 出于安全原因不允许使用此文件类型 要解决此问题 请在 wp
  • 有什么方法可以跟踪 proc 宏中发生错误的位置吗?

    我正在实现一个 proc 宏 并在另一个板条箱中进行测试 当我编译客户端包时 proc 宏的调用站点抛出错误 error proc macro panicked gt foo src main rs 17 1 该错误发生在 proc 宏实现
  • 基于上下文的实体框架的不同连接字符串

    我有一个使用实体框架的 Web 表单应用程序 该应用程序部署在开发盒 我的本地计算机和生产盒上 其中每个都有不同的连接字符串 处理这个问题的最佳方法是什么 我使用 TFS 构建服务器部署到开发环境 并将构建结果压缩并手动将其复制到生产环境
  • 如何在 MapView 上创建动态编号的 Pin 指针?

    我想在我的设备上显示一些位置MapView 这些位置将显示具有数字 1 2 3 等的图钉 类似于 Google 地图结果 但它是 A B C 我认为拥有所有数字的引脚是不可行的 有什么方法可以让我创建一个带有 pin 背景的布局TextVi
  • python multiprocess.Pool 在标准输出中按顺序显示结果

    在 multiprocessing Pool 中 我试图以相同的顺序显示我的打印结果 from multiprocessing import Pool import time def func arg time sleep 0 001 pr
  • 尝试提供 Meteor 应用程序时出现“babel-runtime”错误

    我最近开始使用 Meteor 和 React 我跟着tutorial在 Meteor 网站上没有问题 然后我尝试创建另一个项目 尝试遵循另一个项目tutorial 对于旧版本的 Meteor 在这个过程中 Meteor 开始抛出一些难以理解
  • 如何使用项目反应器实现调用重复,直到满足特定条件?

    有没有什么方法可以使用项目反应器来做这样的事情 fetchSystemUpdates return Mono