2017-08-14 91 views
-2

我不知道爲什麼這個程序不打印。我希望每1秒打印一次字符串對象。所以我用間隔。這個程序正常編譯。但結果不打印。爲什麼??????????幫助.....(我是韓國人。所以英語是不成熟的。對不起...)rxjava ...我不知道爲什麼這個程序不打印

 
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!!!"); 

      } 

     }); 





    } 

} 

回答

2

你觀察到的間隔同步使您的管道通到異步,所以它在另一個線程中運行,這就是爲什麼你看不到任何打印onNext或onComplete。

只是爲了證明你我的理論加

Thread.sleep(5000) 

訂閱後。

如果你正在學習RxJava,你可以考慮看看這個例子https://github.com/politrons/reactive

相關問題