2

あるストリームからデータベースにイベントを格納する必要があり、そのデータベースへのクライアント ライブラリが非同期であるとします。

たとえば、次のイベントが発行されたときに、オブザーバーwriteEvent(event: MyEvent): Future[Boolean]内で呼び出さなければならないメソッドがあります。onNextでブロックする以外にこれを行う良い方法はありFutureますか?

これを実装する方法について現在私が見ている唯一の方法は、Scheduler内部の非同期コードonNextが完了するまで、スレッドをプールに返すことができるカスタムを作成することです。

4

1 に答える 1

2

サブスクライバーのコールバック内でそのようにブロックしたくない場合はonNext、Rx を無効にします。より慣用的な方法で連鎖させることができます。

私はFuturesをあまり扱っていませんが、うまくObservable.from(Future)いくかどうか疑問に思っています:

someStream
    .flatMap(evt => Observable.from(writeEvent(evt)))
    .subscribe(
        next => ...,
        err => ...
)
于 2016-10-23T06:45:12.780 に答える