首页 文章

Rxjava:我不打印

提问于
浏览
-2

我不知道为什么这个程序不打印 . 我想要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!!!");

            }

        });





    }

}

1 回答

  • 2

    你的observable interval 它使你的管道从 sync 传递到 async ,所以它在另一个线程中运行,这就是为什么你看不到任何打印onNext或onComplete .

    只是为了向你证明我的理论补充

    Thread.sleep(5000)
    

    订阅后 .

    如果您正在学习RxJava,可以考虑看一下这个例子https://github.com/politrons/reactive

相关问题