解释 rxJava 中的下游和上游

2022-09-03 16:38:40

我真的不明白Rxjava下游上游的含义。那是什么意思?它是否等同于 subscribeOnobservableOn


答案 1

我们可以通过根据运算符查看流的位置来划分流。

         upstream          downstream
source <--------- operator -----------> consumer/further operators

所以从顶部到运营商,我们称之为上游。

从操作员到底部,我们称之为下游。

它不等同于 和 。 并且只是运算符。但是,我们可以通过使用下游和上游概念来区分这两个运算符的行为。subscribeOnobserveOnsubscribeOnobserveOn

subscribeOn正在影响其上游和下游。例如,在此代码上subcsribeOn

just("Some String")
  .map(str -> str.length())
  .subsribeOn(Schedulers.computation()) // change thread
  .map(length -> 2 * length)
  .subscribe(number -> Log.d("", "Number " + number))

将使所有流(向上和向下)在计算线程上运行。

另一方面,只影响下游。 在此代码上observeOnobserveOn

just("Some String")
  .map(str -> str.length())
  .observeOn(Schedulers.computation()) // change thread
  .map(length -> 2 * length)
  .subscribe(number -> Log.d("", "Number " + number))

仅使下游在计算线程上运行。

我希望这个解释会有所帮助。


答案 2

推荐