Asynchronous Observer.onNext中的RxJava/RxScala异步代码
假设您希望将某个流中的事件存储到数据库中,并且该数据库的客户端库是异步的 例如,有一个方法Asynchronous Observer.onNext中的RxJava/RxScala异步代码,asynchronous,rx-java,reactive-programming,rx-scala,Asynchronous,Rx Java,Reactive Programming,Rx Scala,假设您希望将某个流中的事件存储到数据库中,并且该数据库的客户端库是异步的 例如,有一个方法writeEvent(event:MyEvent):Future[Boolean],当发出下一个事件时,您必须在观察者的onNext内部调用该方法。除了阻止未来之外,还有什么好方法可以做到这一点吗 关于如何实现这一点,我目前看到的唯一方法是创建一些自定义的调度程序,它允许我将线程返回到池中,直到onNext中的异步代码完成。您不希望像onNext订户回调中那样阻止Rx。它可以用更惯用的方式链接在一起 我不太
writeEvent(event:MyEvent):Future[Boolean]
,当发出下一个事件时,您必须在观察者的onNext
内部调用该方法。除了阻止未来
之外,还有什么好方法可以做到这一点吗
关于如何实现这一点,我目前看到的唯一方法是创建一些自定义的
调度程序
,它允许我将线程返回到池中,直到onNext
中的异步代码完成。您不希望像onNext
订户回调中那样阻止Rx。它可以用更惯用的方式链接在一起
我不太关注期货,但我想知道可观察。from(Future)
是否有效:
someStream
.flatMap(evt => Observable.from(writeEvent(evt)))
.subscribe(
next => ...,
err => ...
)
谢谢你的回答。看来可以用了,我会试试,稍后再报告。