解释 rxJava 中的下游和上游
我真的不明白Rxjava中下游和上游的含义。那是什么意思?它是否等同于 subscribeOn 和 observableOn?
我真的不明白Rxjava中下游和上游的含义。那是什么意思?它是否等同于 subscribeOn 和 observableOn?
我们可以通过根据运算符查看流的位置来划分流。
upstream downstream
source <--------- operator -----------> consumer/further operators
所以从顶部到运营商,我们称之为上游。
从操作员到底部,我们称之为下游。
它不等同于 和 。 并且只是运算符。但是,我们可以通过使用下游和上游概念来区分这两个运算符的行为。subscribeOn
observeOn
subscribeOn
observeOn
subscribeOn
正在影响其上游和下游。例如,在此代码上subcsribeOn
just("Some String")
.map(str -> str.length())
.subsribeOn(Schedulers.computation()) // change thread
.map(length -> 2 * length)
.subscribe(number -> Log.d("", "Number " + number))
将使所有流(向上和向下)在计算线程上运行。
另一方面,只影响下游。 在此代码上observeOn
observeOn
just("Some String")
.map(str -> str.length())
.observeOn(Schedulers.computation()) // change thread
.map(length -> 2 * length)
.subscribe(number -> Log.d("", "Number " + number))
仅使下游在计算线程上运行。
我希望这个解释会有所帮助。