Flowable BackpressureStrategyがblockingSubscribeメソッドとどのように機能するかを理解するのが難しいです。誰かが私にそれを説明することができたらうれしいです。RxJava2 Flowable.create blockingSubscribeセマンティクスとBackpressureStrategy
私はこのコードを現在のトランクのFlowableTests
ファイルでテストしていました。
@Test
public void testCreateBackpressureDrop() {
Flowable.create(new FlowableOnSubscribe<Integer>() {
@Override
public void subscribe(FlowableEmitter<Integer> e) throws Exception {
e.onNext(1);
e.onNext(3);
e.onNext(4);
e.onComplete();
}
}, BackpressureStrategy.DROP).blockingSubscribe(w);
verify(w, times(1)).onNext(1);
verify(w, times(1)).onNext(3);
verify(w, times(1)).onNext(4);
verify(w, times(1)).onComplete();
}
私はsubscribe(w)
とBackpressureStragegy.DROP
またはBackpressure.BUFFER
テストパスを使用している場合。しかし、私がblockingSubscribe(w)
を使用した場合、が呼び出されなかったと言うと、Backpressure.DROP
が失敗して、Backpressure.BUFFER
が失敗します。
ありがとうございます!
通常のコード(非テストコード)の 'onSubscribe'で' s.request(N) 'が呼び出されると予想されますか?これについてはまだ役立つ資料はありますか?ありがとう! –
あなたが 'Subscriber'を介してそれを実装している場合は、yesを返します。 'DisposableSubscriber'と' ResourceSubscriber'がそれを行います。 RxJava 1に精通している場合は、https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0を参照してください。そうでなければRxJava 2に関するブログがここにあります。 – akarnokd