Должен ли я использовать тему или Observable только для передачи сообщений в одноуровневый компонент? - PullRequest
0 голосов
/ 17 мая 2018
 const simpleObservable  = new Observable( (observer) => {
     observer.next("My message");
     observer.complete();
 })

Чтобы подписаться на одноуровневый компонент,

 simpleObservable.subscribe();

Для предмета,

const subject = new Rx.Subject();

subject.next("My message");

subject.subscribe((data) => {
      console.log(data);
})

Я знаю, что основной причиной использования субъекта является многоадресная передача, а наблюдаемая - одноадресная (каждый подписанный наблюдатель имеет независимое выполнение наблюдаемой).

То есть, просто для передачи сообщений, что является более эффективным и полезным для использования?

1 Ответ

0 голосов
/ 17 мая 2018

Это действительно зависит от того, что вы хотите с ним делать.Я предлагаю перейти к одноадресной передаче, потому что в многоадресной операции наблюдаемый выполняется только один раз , а не на основе подписки. Если базовый наблюдатель завершает, субъект-посредник также завершает , поэтому любые подписчики , которые будут добавлены в будущем, не получат никаких данных или просто

после завершения темы, будущие подписчики этой темы не будут получать больше данных

также отметят, что

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