問題タブ [backpressure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
941 参照

java - RxJava2を使ってgenerate関数でflowableを作成する

バックプレッシャーを実装したカスタム Flowable を作成する必要があります。私はある種のページングを達成しようとしています。つまり、ダウンストリームが 5 アイテムをリクエストした場合、アイテム 0 ~ 5 について「データ ソースに問い合わせます」。その後、ダウンストリームが別の 5 アイテムを必要とする場合、アイテム 5 ~ 10 を取得して送り返します。

これまでに見つけた最善の方法はメソッドを使用することですが、ダウンストリームが要求しているアイテムの数Flowable.generateを取得する方法が (私の知る限り) ない理由が本当にわかりません。requestedgeneratorのプロパティを使用してstate、最後に要求されたアイテムのインデックスを保存できるので、新しく要求されたアイテムの数だけが必要になります。BiFunction で取得した emmiter インスタンスは、applyからGeneratorSubscription拡張されていAtomicLongます。したがって、 emmiter をキャストするAtomicLongと、要求された番号を取得できます。しかし、これが「推奨される」方法ではないことはわかっています。

一方、使用すると、メソッドFlowable.createを持つ FlowableEmitter を取得しますlong requested()。を使用するgenerateことは、私のユースケースにより適していますが、今では「正しい」使用方法にも興味がありますFlowable.generate

たぶん私はすべてを考えすぎているので、正しい方向に向けてください。:) ありがとうございました。

実際のコードは次のようになります (Kotlin の場合):