【问题标题】:Rxjava why did not execute the onNext methodrxjava为什么没有执行onNext方法
【发布时间】:2016-06-20 17:46:44
【问题描述】:

我写了一个打印 flatMap 输出的方法(伪代码):

Observable.just(...).repeat()
    .flatMap( return Observable.just([double]))
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(new Subscriber<Double>() {
        @Override
        public void onCompleted() {

        }

        @Override
        public void onError(Throwable e) {
            tvConfidence.setText(e.getMessage());
        }

        @Override
        public void onNext(Double aDouble) {
            tvConfidence.setText("Confidence :" + aDouble);
        }
    });

当我运行这些代码时,它会运行几秒钟,但几秒钟后,它不会再次运行到 onNext 方法上。不知道为什么,因为我调试代码,它会运行Observable.just(double),并且值总是改变但它不会执行代码setText刷新textView。

【问题讨论】:

    标签: android rx-java reactive-programming rx-android


    【解决方案1】:

    我的猜测是,由于特定的flatMap 过载,您最终会开始积累大量just,因为flatMap 是无限的。尝试使用flatMap(f, 1) 来限制并发级别。

    【讨论】:

    • 谢谢你!我将 flatMap 更改为 map,它可以工作。也许在这种情况下我不应该使用 flatMap。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多