2017-08-14 139 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

相关问题