为什么间隔不发出任何东西?
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) { }
现在,您将看到一些输出。
为什么这段代码没有发出任何东西:
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) { }
现在,您将看到一些输出。