假设您希望将某些流中的事件存储到数据库中,并且该数据库的客户端库是异步的。
E.g。有一个方法writeEvent(event: MyEvent): Future[Boolean]
,你必须在发出下一个事件时在你的观察者的onNext
内调用。除了阻止Future
?
我目前看到如何实现这一点的唯一方法是创建一些自定义Scheduler
,允许我将线程返回到池,直到onNext
内的异步代码完成的
答案 0 :(得分:2)
您不希望在onNext
订阅者回调中阻止这样做,这会破坏Rx。它可以以更惯用的方式链接在一起。
我不太喜欢Futures,但我想知道Observable.from(Future)
是否有效:
someStream
.flatMap(evt => Observable.from(writeEvent(evt)))
.subscribe(
next => ...,
err => ...
)