0
rxjava2を使用したいと思うのは、ダウンストリームリクエスト1、rxjava2プロデューサ - コンシューマ、 'downstream'リクエスト1、 'upstream'で1を送信
flatMap
またはobserveOn
にはデフォルトのバッファサイズ128があるので、バッファサイズは1に設定されていますが、それも機能しません。私はs.request(1)
一度だけ呼び出すため
flatMap:1
flatMap:2
onNext:1
flatMap:3
予想される出力、::
Flowable.defer((Callable<Publisher<Integer>>)() -> Flowable.range(1, 5))
.flatMap((Function<Integer, Publisher<Integer>>) integer -> {
//do something with long time.
System.out.println("flatMap:" + integer);
return Flowable.just(integer);
}, false, 1) //=====> 1
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.computation(), false, 1) //=====> 2
.subscribe(new Subscriber<Integer>() {
@Override
public void onSubscribe(Subscription s) {
//request one
s.request(1);
}
@Override
public void onNext(Integer integer) {
System.out.println("onNext:" + integer);
}
@Override
public void onError(Throwable t) {
}
@Override
public void onComplete() {
}
});
実際の出力は
flatMap:1
onNext:1
詳細な手順をお寄せいただきありがとうございます。私はまた、「流動性がある」ことはできないと思うので、私はあなたの「フィードバックループ」方法を試みます。 – xymelon