gpt4 book ai didi

java - ReactiveX Java 进程提早结束?

转载 作者:行者123 更新时间:2023-12-02 13:23:48 28 4
gpt4 key购买 nike

public class ReactiveExample {

public static void main(String[] args) throws InterruptedException, NumberFormatException, UnsupportedEncodingException {

Observable.range(1, 5).subscribe(
System.out::println,
error -> System.out.println("error"),
() -> System.out.println("completed")
);

}

}

打印出来的结果是rx.internal.util.ScalarSynchronousObservable@2fad386b

打印可观察值后我得到:

进程已完成,退出代码为 0

我刚刚开始使用 ReactiveX,并且一直在学习一些教程。我的假设是上面的代码将连续传输数据,如下所示:

1-2-3-4-5-1-2-3-4-5... 并继续打印该值。为什么我的程序立即停止?是不是在观察到前 5 位数字后就结束了?如何更改它以连续流式传输值并在循环这些值时打印它们?另外,如何实际打印值而不是可观察对象引用?

最佳答案

range:返回一个 Observable,它发出指定范围内的整数序列。

所以你的假设是错误的。 range 不重复任何内容。为此,您需要使用repeat

Observable.range(1, 5).repeat().subscribe(
System.out::println,
error -> System.out.println("error"),
() -> System.out.println("completed")
);

关于java - ReactiveX Java 进程提早结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43468454/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com