为什么间隔不发出任何东西?

Why interval doesn't emit anything?

为什么这段代码没有发出任何东西:

Observable<Long> observable1 = Observable.interval(3, 1000, TimeUnit.MILLISECONDS);
observable1.subscribe(l -> System.out.println(l));

首先你需要知道的是 rx-java 本质上是异步的。 很难说您是否意识到仅仅通过这个片段来判断。 如果你只想阻止并打印它,你应该使用 blockingSubscribe 代替订阅。

intervall()Scheduler.computation() 进行操作,它会分配一个新线程。您的程序在新线程有机会 运行 之前终止。你可以通过暂停主线程一段时间来解决这个问题。

Observable<Long> observable1 = Observable.interval(3, 1000, TimeUnit.MILLISECONDS);
observable1.subscribe(l -> System.out.println(l));

try {
    Thread.sleep(5000);
}
catch(InterruptedException e) { }

现在,您将看到一些输出。