当前位置: 首页 > 知识库问答 >
问题:

rxjava的retryWhen意外地一直在重试

申屠涛
2023-03-14
    null
import io.reactivex.rxjava3.core.Observable
import kotlin.random.Random

fun main() {
    Observable
        .just(Unit)
        .flatMap {
            if (Random.nextBoolean()) {
                Observable.just(Unit)
            } else {
                Observable.error(Throwable())
            }.retryWhen {
                it.flatMap {
                    println("retryWhen")
                    Observable.just(Unit)
                }
            }
        }
        .subscribe()
}
retryWhen
retryWhen
retryWhen
⋮
(continued)

共有1个答案

微生新翰
2023-03-14

>

  • 您已经将RetryWhen应用于if语句的任一分支的执行结果。

    RetryWhen运算符链接到FlatMap生成的流:

    例如。

    Observable
      .just(Unit)
      .flatMap {
        if(Random.nextBoolean()) {
          Observable.just(Unit)
        } else {
          Observable.error(Throwable())
        }
      }
      .retryWhen {
          it.flatMap {
            println("retryWhen")
            Observable.just(Unit)
          }
      }
      .subscribe()
    

  •  类似资料:
    • 重试时间:io.reactivex.subjects.serializedsubject@35fb3008 subscribeNext 进程已完成,退出代码为0

    • retryWhen 函数签名: retryWhen(receives: (errors: Observable) => Observable, the: scheduler): Observable 当发生错误时,基于自定义的标准来重试 observable 序列。 示例 示例 1: 在指定的时间间隔后触发重试 ( StackBlitz | jsBin | jsFiddle ) // RxJS v

    • 我们正在开发CRM。 在本地,我没有问题,但在远程(OVH),我有以下错误消息: 分析错误:语法错误,第126行的/home/dubinfo/www/CRM/model/Locataire.php中出现意外的“class”(T_类),需要标识符(T_字符串)或变量(T_变量)或“{”或“$” 代码如下: 远程主机上的PHP(OVH)版本为5.4.38

    • 我是matplotlib的初学者,如果这看起来像一个愚蠢的问题,我很抱歉。 我有一个csv文件,其中包含深度学习模型不同层中单个神经元的权重值。由于我的模型中有四个层,因此文件结构如下所示: weight_1weight_2weight_n weight_1weight_2weight_n weight_1weight_2weight_n weight_1weight_2weight_n 正如你所

    • 致命错误:在展开可选值时意外发现nil。 我相信这很容易修复,但我对此相当陌生--我做错了什么?

    • 我正在制作一个导数计算器,要求用户输入多项式的阶数,然后是每个项的系数,部分原因是我是一个没有经验的程序员,不能解析输入,比如。 这是我的课。 这是我的测试课。 运行此操作将创建一个小程序窗口,其中显示 这不是正确的导数。 我调试了我的程序,一切都按预期运行,直到视图切换到我的测试类并执行