Объясните о нисходящем и восходящем в rxJava

1

Я не очень понимаю значение downstream и upstream в Rxjava. Что это значит? Это эквивалентно подписке и наблюдению?

Теги:

1 ответ

6
Лучший ответ

Мы можем разделить поток, увидев его позицию на основе оператора.

         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 вниз по течению. observeOn этот код

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

только запускать нисходящий поток в вычислительном потоке.

Я надеюсь, что объяснение поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню