我不知道为什么这个节目不打印。我想要1秒钟打印字符串对象。所以我使用间隔。这个程序通常编译。但结果不打印。为什么?救命。 (我是韩国人。所以英语不成熟。对不起)
public class main { public static void main(String[] args){ String str1 = "Apple"; String str2 = "Banana"; String str3 = "Boy"; ObservableSource tim = Observable.interval(3, TimeUnit.SECONDS); ObservableSource ss = Observable.just(str1,str2,str3); Observable.zip(tim,ss,new BiFunction() { @Override public String apply(Long t1, String t2) throws Exception { System.out.println("ddd"); return t1+t2; } }) .subscribe(new DefaultObserver() { @Override public void onNext(String t) { System.out.println(t); } @Override public void onError(Throwable e) { System.out.println("Error!!!");} @Override public void onComplete() { System.out.println("Complete!!!"); } }); } }
答案 0 :(得分:3)
您的可观察时间间隔它使您的管道从同步传递到异步,因此它在另一个线程中运行,这就是为什么你无法在onNext或onComplete上看到任何印刷品。
只是为了向你证明我的理论添加
Thread.sleep(5000)
订阅后。
如果你正在学习RxJava,你可以考虑看一下这个例子https://github.com/politrons/reactive