Rxjava为什么没有执行onNext方法
Rxjava why did not execute the onNext method
我写了一个打印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
刷新[=14] =].
我的猜测是,由于特定的 flatMap
过载,您最终会开始积累大量 just
,因为 flatMap
是无界的。尝试使用 flatMap(f, 1)
来限制并发级别。
我写了一个打印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
刷新[=14] =].
我的猜测是,由于特定的 flatMap
过载,您最终会开始积累大量 just
,因为 flatMap
是无界的。尝试使用 flatMap(f, 1)
来限制并发级别。