«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Являются ли наблюдаемые Rx холодными по умолчанию? Понимание потока данных с помощью опубликовать и поделиться

Являются ли наблюдаемые Rx холодными по умолчанию? Понимание потока данных с помощью опубликовать и поделиться

Опубликовано 15 ноября 2024 г.
Просматривать:851

 Are Rx Observables Cold by Default?  Understanding the Flow of Data with  `publish` and `share`

Горячие и холодные наблюдаемые: понимание потока данных

Все ли наблюдаемые Rx по умолчанию являются холодными?

По умолчанию , все наблюдаемые Rx являются холодными, за исключением субъектов. Это означает, что они излучают значения только тогда, когда на них подписан хотя бы один наблюдатель.

Операторы Rx для превращения холодных наблюдаемых в горячие

Существуют два основных оператора, которые может преобразовать холодную наблюдаемую в горячую:

  • publish: возвращает подключаемую наблюдаемую, которая начнет выдавать значения только при подключении.
  • share: аналогично публикации, но автоматически подключает наблюдаемое, когда первый наблюдатель подписывается.

withLatestFrom Оператор и холодные наблюдаемые

withLatestFrom не меняет холодность или жару наблюдаемого. В вашем примере:

  • cold$.withLatestFrom(sth$,...) по-прежнему будет холодным наблюдаемым.
  • Если несколько наблюдаемых подписаны на cold$ с использованием withLatestFrom, они каждый будет использовать одну и ту же последовательность значений, независимо от времени подписки.

Rx.fromEvent и поведение Hot/Cold

Несоответствие, которое вы наблюдали в Пример CodePen связан с тем, что событие генерируется только при щелчке по элементу, а не при подписке на наблюдаемую Rx.fromEvent. Из-за этого каждая подписка на наблюдаемые получает разные события.

Упрощенная блок-схема для холодных наблюдаемых

Чтобы проиллюстрировать упрощенный поток данных для холодных наблюдаемых:

Source -> Observer1 -> Observer2

Упрощенная блок-схема для горячих наблюдаемых

Для горячих наблюдаемых поток выглядит следующим образом:

Source -> Subject -> Observer1 -> Observer2

Субъект действует как центральный узел, осуществляя многоадресную рассылку входящих данных всем подписанным наблюдателям.

Операторы многоадресной рассылки (публикация/поделиться)

Операторы многоадресной рассылки создают внутренний субъект и возвращают подключаемый наблюдаемый объект. Когда наблюдаемый объект подключен, субъект подписывается на восходящий наблюдаемый объект и осуществляет многоадресную рассылку данных всем подписанным наблюдателям.

Учитывайте поток данных при использовании операторов

Понимание потока данных и поведение операторов имеет решающее значение. Даже если наблюдаемая является горячей, важно учитывать, как последующие операторы могут повлиять на ее горячее или холодное поведение.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3