如何在rxjava中压缩

用户名

嗨,我是RXJava的新手,我正在尝试处理我的第一个RxJava示例,如下所示

Observable<String> myObservable = Observable.create(
            new Observable.OnSubscribe<String>() {
                public void call(Subscriber<? super String> subscriber) {
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    subscriber.onNext("hello world");
                    subscriber.onCompleted();
                }
            }
    ).subscribeOn(Schedulers.computation());

    Observable<String> myObservable1 = Observable.just("thank you");

    Observable observable3 = Observable.zip(myObservable, myObservable1, new Func2<String,String,String>() {
        @Override
        public String call(String o, String o2) {
            return o+":"+o2;
        }
    });

    observable3.subscribe(new Action1<String>() {
        @Override
        public void call(String o) {
            System.out.println("before");
            System.out.println(o);
        }
    });
System.out.println("after");

我想打印before然后after,如何在不带rxjava的情况下进行打印sleep

奥斯特罗沃霍夫

一种可能的方式:

 Observable<String> myObservable = Observable.create(
            new Observable.OnSubscribe<String>() {
                public void call(Subscriber<? super String> subscriber) {
                    subscriber.onNext("hello world");
                    subscriber.onCompleted();
                }
            }
    ).subscribeOn(Schedulers.computation());

    Observable<String> myObservable1 = Observable.just("thank you");

    Observable observable3 = Observable.zip(myObservable, myObservable1, new Func2<String,String,String>() {
        @Override
        public String call(String o, String o2) {
            return o+":"+o2;
        }
    });

    Observable.just("before").concatWith(observable3).concatWith(Observable.just("after")).toBlocking().subscribe(new Action1<String>() {
        @Override
        public void call(String s) {
            System.out.println(s);
        }
    });

结果是:

之前
你好世界:谢谢你
之后

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章