Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin RxJava2-range()与interval()的比较_Kotlin_Rx Java2 - Fatal编程技术网

Kotlin RxJava2-range()与interval()的比较

Kotlin RxJava2-range()与interval()的比较,kotlin,rx-java2,Kotlin,Rx Java2,我试图使用Observable.range(11000.publish()和Observable.interval(500,时间单位.毫秒).publish()来理解热可观测和热可流动 当我使用range()而不是interval()来创建一个可观察/可流动的线程时,不需要暂停线程来实现主线程等待一段时间主()。对于interval()函数,情况并非如此 此外,当我使用range()而不是interval()来创建可观察/可流动时,我必须在connect()之前先订阅观察者/订阅者,否则不会收到

我试图使用
Observable.range(11000.publish()
Observable.interval(500,时间单位.毫秒).publish()来理解
热可观测
热可流动

  • 当我使用
    range()
    而不是
    interval()
    来创建一个可观察/可流动的线程时,不需要暂停线程来实现主线程等待一段时间<代码>主()。对于
    interval()
    函数,情况并非如此
  • 此外,当我使用
    range()
    而不是
    interval()
    来创建可观察/可流动时,我必须在
    connect()
    之前先订阅观察者/订阅者,否则不会收到任何项目。使用
    interval()
  • 有人能解释为什么会这样吗?是因为实现了
    range()
    ,还是因为我不明白什么

    您可以看到Observable/Observer和Flowable/Subscriber的示例。

    操作符是冷的,
    range()
    操作符会尽快释放其所有项。如果没有施加背压,所有项目将在最初几微秒内排放


    interval();第一项在定义的间隔后发出。如果您在主线程中订阅,并且您的主程序退出,您将不会看到来自
    interval()
    操作符的任何结果,因为还没有经过足够的时间。这意味着您必须在观察者链上阻塞,或者提供一种外部方法来等待您想要的结果。

    range
    interval
    之间存在巨大差异,这就是为什么您会得到如此大的差异results@OmarMainegra我可以理解,但我想解释一下。这个评论对我一点帮助都没有。对于
    Flowable
    range()
    来说,默认情况下不应该有背压感知?我认为,默认情况下,
    Flowable
    具有背压感知功能,应该在125个排放项目周围等待。如果它等待第一个
    订阅者
    赶上可流动的
    订阅者,为什么第二个
    订阅者
    什么也没有收到?首先,
    订户
    需要很长时间才能赶上发出的项目。
    可流动
    操作员意识到背压。然而,如果你不施加背压,它们会一直释放,直到你施加背压为止
    Subscriber
    将在几微秒内处理每次发射的结果,除非您正在进行其他重要处理。在任何情况下,
    interval()
    运算符在0.5秒内都不会发出其第一个值