从期货可观察到-来自多个线程的onNext

thund

我想根据Observable列表的结果实时生成一个Futures

在最简单的情况下,假设我有一份正在运行的期货清单Future.sequence,而我只是使用监视Observable每次交易完成时的进度来监视它们的进度我基本上是这样的:

  def observeFuturesProgress(futs: List[Future[Int]]) : Observable[String] = {
    Observable[String](observer => {
      val loudFutures: List[Future[Int]] = futs.map(f => {
            f onComplete {
              case Success(a) => observer.onNext(s"just did $a more")
              case Failure(e) => observer.onError(e)
            }
            f
        })
      Future.sequence(loudFutures) onComplete {
          case Success(_) => observer.onCompleted()
          case Failure(e) => observer.onError(e)
      }
    })
  }

在我的测试环境中,这可以正常工作。但是我已经读过,onNext不应从不同的线程调用它,至少要注意没有重叠的调用。建议的解决方法是什么?似乎许多实际用途Observables都需要onNext从这样的异步代码中调用,但我在文档中找不到类似的示例。

我的狗汤姆

可观察合约

观察者必须按顺序(而不是并行)向观察者发出通知。他们可以从不同的线程发出这些通知,但是在通知之间必须存在正式的事前关系。

看看序列化

一个Observable可能异步地(可能从不同的线程)调用其观察者的方法。这可能使这样的Observable违反Observable约定,因为它可能尝试在其OnNext通知之一之前发送OnCompleted或OnError通知,或者可能同时从两个不同的线程发出OnNext通知。通过将Serialize运算符应用于此Observable,可以强制使其行为良好且同步。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

可观察到的在onNext()中不传递任何内容

来自分类Dev

在后台线程上可观察到的进程

来自分类Dev

RxJava结合了多个可观察到的东西

来自分类Dev

处理“ onNext”中热的,共享的,可观察到的错误的正确方法

来自分类Dev

retrofit2返回可观察到的,每个onNext都有1个对象

来自分类Dev

Angular 8:从可观察到的RxJS中过滤结果(来自Angular.io教程)

来自分类Dev

由于某些原因,可观察到的concatMap在主线程上执行操作

来自分类Dev

在主线程上运行可观察到的协程或rx有什么作用

来自分类Dev

可观察到对不同线程上更改的队列没有反应

来自分类Dev

在可观察到的情况下管理线程调度程序

来自分类Dev

如何最好地处理模板上可观察到的多个订阅?

来自分类Dev

可观察到可观察的顺序

来自分类Dev

尝试向API发出多个请求时出现TypeScript可观察到的错误(Angular,TypeScript,RxJS)

来自分类Dev

可观察到的createasync

来自分类Dev

可观察到的错误

来自分类Dev

C#反应式扩展,当OnNext花费很长时间且可观察到产生新事件时会发生什么

来自分类Dev

在RxJava中,在其他线程上订阅时,可以压缩的可观察到的值可以返回到主线程吗?

来自分类Dev

组合来自多个RxJS可观察对象的数据的更好方法

来自分类Dev

角度2可观察到可观察[]

来自分类Dev

RXJS可观察到的doSomething onComplete

来自分类Dev

转换可观察到列表

来自分类Dev

RxJs数组可观察到的数组

来自分类Dev

可观察到RxJava的后备

来自分类Dev

RxJs可观察到的分页

来自分类Dev

角度2可观察到的间隔

来自分类Dev

Firebase中可观察到的后端?

来自分类Dev

垫台变化可观察到

来自分类Dev

可观察到的FromEventPattern INotifyCollectionChanged错误

来自分类Dev

返回可观察到的延期

Related 相关文章

  1. 1

    可观察到的在onNext()中不传递任何内容

  2. 2

    在后台线程上可观察到的进程

  3. 3

    RxJava结合了多个可观察到的东西

  4. 4

    处理“ onNext”中热的,共享的,可观察到的错误的正确方法

  5. 5

    retrofit2返回可观察到的,每个onNext都有1个对象

  6. 6

    Angular 8:从可观察到的RxJS中过滤结果(来自Angular.io教程)

  7. 7

    由于某些原因,可观察到的concatMap在主线程上执行操作

  8. 8

    在主线程上运行可观察到的协程或rx有什么作用

  9. 9

    可观察到对不同线程上更改的队列没有反应

  10. 10

    在可观察到的情况下管理线程调度程序

  11. 11

    如何最好地处理模板上可观察到的多个订阅?

  12. 12

    可观察到可观察的顺序

  13. 13

    尝试向API发出多个请求时出现TypeScript可观察到的错误(Angular,TypeScript,RxJS)

  14. 14

    可观察到的createasync

  15. 15

    可观察到的错误

  16. 16

    C#反应式扩展,当OnNext花费很长时间且可观察到产生新事件时会发生什么

  17. 17

    在RxJava中,在其他线程上订阅时,可以压缩的可观察到的值可以返回到主线程吗?

  18. 18

    组合来自多个RxJS可观察对象的数据的更好方法

  19. 19

    角度2可观察到可观察[]

  20. 20

    RXJS可观察到的doSomething onComplete

  21. 21

    转换可观察到列表

  22. 22

    RxJs数组可观察到的数组

  23. 23

    可观察到RxJava的后备

  24. 24

    RxJs可观察到的分页

  25. 25

    角度2可观察到的间隔

  26. 26

    Firebase中可观察到的后端?

  27. 27

    垫台变化可观察到

  28. 28

    可观察到的FromEventPattern INotifyCollectionChanged错误

  29. 29

    返回可观察到的延期

热门标签

归档