2017-01-29 19 views
2

私はReactiveプロジェクトをrxjava 1からバージョン2に移行しようとしています。私は、BackpressureModeを指定することにより、AsyncEmitterを使って既存のフィードにアタッチしていました。しかし、私はrxjava2でこれを行うには匹敵する方法を見つけることができません。 rxjava 2でAsyncEmitterを置き換えたのは何ですか?エミッタの実装がいくつかありますが、BackPressureStrategyを受け入れるものはありません。rxjava 2でAsyncEmitterを置き換えたのは何ですか?

私は

FlowableCreate flowableCreate = 
     new FlowableCreate(source, BackpressureStrategy.LATEST); 
flowableCreate.subscribe(System.out::println); 

を試してみましたが、それがうまくコンパイルが、実行はしてすぐに失敗します。

エラー:(123、23)のjava:組織のためにorg.reactivestreams.Subscriber クラスファイルにアクセスできません。 .reactivestreams.Subscriberが見つかりません。ハァッ?

+1

の依存性をreactivestreams、RxJava 2にあなたがフロアブルを持っている:

あなたは達人と2.0.5+使用するか、org.reactivestreamsをダウンロードするのを忘れていないので、あなたはおそらくcannot access org.reactivestreams.Subscriberを取得Observableは観察できない。おそらくObservableを作成してから、Flowableに切り替える必要がありますか? –

+0

それを試しましたが、奇妙なコンパイルエラーです。 –

+0

IntelliJのバグのようです。これは、コマンドラインで正常に動作します。 –

答えて

2

2.xでは、探している方法がFlowable.create()です。背圧をサポートしている私の知る限りRxJava 2.

+0

ありがとう、いいえ、私はそれが正しく設定されているとは思っていません、私が必要とするのは2.0.5の依存関係です。私はもともとIntelliJプロジェクトがrxjava io.reactivex rxjava 1.2.5を指していて、うまくいきました。その後、私はrxjava2 2.0.5に切り替え、きれいにインストールして、プロジェクトを再構築して確実に確認しました。ライブラリをチェックしたところ、すべて正しいです。しかし、IntelliJは間違ったクラスを読み込んでいます。コマンドラインからのビルドはうまくいきました。だから、私はすべてを新しいプロジェクトにコピーしたし、うまくいった。いくつかの小さなバグを突き止める。彼らは通常、これらのスワッピングについて非常に良いです –

+0

ところで、私は背圧を失うことを望んでいる場合、Observableを使用してこれを行うことは可能ですか?それとも無意味なユースケースですか? –

+0

すべての基本型に 'create()'があります。 – akarnokd

関連する問題