重试时修改源 Observable - RxJava

2024-03-05

如何在重试时更新可观察的源?

List<String> ids = new ArrayList<>(); // A,B,C
Observable.from(ids)
          .retryWhen(errors -> {
                    return errors
                    .zipWith(Observable.range(0, 1), (n, i) -> i)
                    .flatMap(retryCount -> Observable.timer((long) Math.pow(2, retryCount), TimeUnit.MINUTES));

           })
           .subscribe(....);

如果我想传递一些其他值,现在不要将 //A,B,C 作为 ids 传递。我该怎么做?或者这是否是正确的方法?


Use defer。这将允许ids重新计算:

Observable.defer(() -> {
    List<String> ids = // compute this somehow
    return Observable.from(ids);
}).retryWhen(...

关于 defer 操作符的文档 http://reactivex.io/documentation/operators/defer.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重试时修改源 Observable - RxJava 的相关文章

随机推荐

  • Puppeteer:如何聆听特定的回应?

    我正在修补名为的无头 chrome 节点 apipuppeteer 我想知道如何听取特定的请求响应以及如何采取行动 我已经查看了事件requestfinish and response但它给了我all页面中已执行的请求 响应 我怎样才能实现
  • 意图在android中拍摄视频

    我需要仅使用前置摄像头从我的应用程序中拍摄视频 我正在使用意图来执行此操作 Intent intent new Intent MediaStore ACTION VIDEO CAPTURE intent putExtra MediaStor
  • 在 JBehave Web 中运行 FirefoxWebDriverProvider 时如何更改浏览器窗口的大小

    我们正在使用 JBehave Web 来驱动新项目的 selenium 测试套件 并且非常喜欢 JBehave 上提供的 Etsy com 示例 尤其是 Java Spring maven 原型 因为这适合我们的架构 到目前为止最大的问题是
  • 如何将表转储到控制台?

    我在显示包含嵌套表 n 深 的表的内容时遇到问题 我想通过 a 将它转储到标准输出或控制台print声明或一些快速而肮脏的东西 但我不知道如何 我正在寻找打印时得到的粗略等价物NSDictionary使用gdb 如果需求是 又快又脏 我发现
  • 无法导入名称“BlockBlobService”

    我收到以下错误 from azure storage blob import BlockBlobService ImportError cannot import name BlockBlobService 当尝试使用命令提示符运行我的 p
  • MongoDB $lookup 值返回数组

    我有一个包含多个项目的文档 需要从另一个集合中查找更多信息来填写数据 主要文件 id ObjectID 5a30ff41af58f911946b122e SalesItems SalesItemID 1139 Quantity 2 Amou
  • 为 C++ 多维类指针创建初始化和删除函数

    我创建了一个类并使用多维指针 如下所示 variable v mod v mod new variable 3 for int i 0 i lt 3 i v mod i new variable n 并在使用后删除指针 for int i
  • 如何更改最新发布的 Visual Studio Code 中的默认浏览器?

    正如标题所说 默认浏览器是IE 但我想使用其他浏览器 我该怎么办 您可以将 Windows 默认设置程序更改为您的浏览器 Windows 7的 控制面板 gt 程序 gt 设置默认程序
  • 从 DLL 导出静态 lib 符号

    我正在将 Facade DLL 用于静态库 Dll 提供了一个小型接口和资源管理 可以在多个 DLL 之间共享 Dll Header 确实公开了静态库中的内容 class DLL EXPORT MyDllClass public OneSt
  • Android 通知 FCM 与简单拉取

    对于我的 Android 应用程序 我需要从服务器接收一些通知 通知的时间要求并不严格 当用户打开应用程序时检查新通知就足够了 因此根本没有后台活动 我注意到 建议使用 FCM Firebase Cloud Messaging 之类的服务来
  • 用对象项填充 listView 的正确方法?

    在我的 NativeScript 项目中 我尝试使用自定义对象 定义为接口 的实例填充 ListView 但输出 在 Android 模拟器上 非常奇怪 我在多行中生成了 object object object 而不是按照我的定义获取每个
  • python不确定性包中的零除错误

    为什么会出现以下零除错误 gt gt gt from uncertainties import ufloat gt gt gt a ufloat 0 0 gt gt gt x ufloat 0 3 0 017 gt gt gt a x Tr
  • 控制 lme4 1.0.* 中的最大迭代次数

    我使用 R 中的 glmer 命令 来自 lme4 包 估计了随机系数风险模型 该命令如下所示 logit full lt glmer event V12 I V1 2 V13 V9 I V5 2 V11 V10 V2 V3 V4 V6 V
  • 允许匿名/来宾用户“尝试”功能,而无需在 Rails/Devise/CanCan 应用程序中注册

    我正在使用 Devise 和 CanCan 开发 Rails 3 应用程序 该应用程序允许匿名 未注册 用户访问该应用程序的某些部分 并允许注册用户访问其他部分 该应用程序 瑜伽锻炼应用程序 的一个方面是 用户可以通过将瑜伽姿势串在一起来创
  • 从 git 历史记录中删除文件 - 错误修订错误

    我按照 Github 上的说明进行操作 https help github com articles remove sensitive data https help github com articles remove sensitive
  • Android - RadioButton 未在初始选中状态下取消选中

    我在 RadioGroup 中有一个 RadioButton 当我设置按钮的初始状态时出现问题 机器人 检查 真 因为如果我按下单选按钮 F 单选按钮 M 不会取消选中 我能怎么做 怎么了 这是代码
  • 来自 URL 的 Facebook ID

    给定一个 Facebook 网址 例如http facebook com cnn http facebook com cnn 有什么方法可以获取该页面的ID而不需要抓取它吗 这是更好的 并且legal 使用图形 API 来执行此操作 只需执
  • 使用 MySQLdb 执行“SELECT ... WHERE ... IN ...”

    我在 Python 中执行一些 SQL 时遇到问题 尽管类似的 SQL 在mysql命令行 该表如下所示 mysql gt SELECT FROM foo fooid bar 1 A 2 B 3 C 4 D 4 rows in set 0
  • 如何在 Kubernetes 中模拟断电

    我有我的rook ceph集群运行于AWS 它加载了数据 有什么办法可以刺激一下电源 检测 失败这样我就可以测试我的集群的行为 从 Docker 你可以发送 KILL 信号 SIGPWR 电源故障 系统 V http man7 org li
  • 重试时修改源 Observable - RxJava

    如何在重试时更新可观察的源 List