TGViewer
🦊 Angular Fox 🚀 — русскогорящие новости сообщества 🦊 Angular Fox 🚀 — русскогорящие новости сообщества @angular_fox · 4.1K subscribers
Post #59 2.16K
📚 Вопрос: что такое share(), publish(), multicast() в RxJS?
🦊 Заваривайте кофейку, ответ будет длинным. Прежде чем переходить к следующему пункту обязательно разберитесь с предыдущим.


📢 Что такое Subject?
Простыми словами, Subject это телефон. В него можно говорить, и из него можно слушать одновременно.

Есть различные Subject: Subject, ReplaySubject, BehaviorSubject, AsyncSubject.


🏰 Что такое multicast()?
Оператор multicast() на вход принимает Subject или его фабрику. И передавая в него различные виды Subject можно получить следующие комбинации:
multicast(new Subject())
multicast(new ReplaySubject())
multicast(new BehaviorSubject())


Все это создает нам ConnectableObservable, который позволяет расшарить Subject на несколько потоков. Но у них всех будут разные стратегии работы, в зависимости от переданного Subject.


🍬 Немного сахара
Операторы publish(), publishReplay(), publishBehavior() используют mulicast() с определенным Subject:
publish()
// работает аналогично multicast(new Subject())

publishReplay()
// работает аналогично multicast(new ReplaySubject())

publishBehavior()
// работает аналонично multicast(new BehaviorSubject())



👨‍🏫 Считаем ссылки
Оператор refCount() реализует паттерн RefCount и автоматически управляет ConnectableObservable:
— если появляется подписчик, то он делает connect;
— если появляется еще один подписчик, то ничего не происходит, используется тот же connect;
— если все подписчики отпишутся, то он сделат unsubscribe от коннекта к ConnectableObservable.


🦄 Финальный босс
Остались операторы share(), shareReplay().
share()
// работает аналонично publish() + refCount()

shareReplay({ refCount: true })
// работает аналонично publishReplay() + refCount()


❤️ Теперь ты знаешь как это работает, отправь своим коллегам, пусть они тоже узнают.
More from @angular_fox
  1. Oct 16, 2026✨ Angular Native Angular Native — новый проект, который позволяет разрабатывать приложения…
  2. Oct 15, 2026✨ Как Anthropic переосмысливает систему контроля версий Anthropic рассказали, как рост объ…
  3. Oct 14, 2026✨ Самовоспроизводящийся ИИ Anthropic опубликовали исследование о том, могут ли небольшие м…
  4. Oct 13, 2026✨ HR-интервью: что на самом деле хотят узнать рекрутеры? Техническое интервью обычно понят…
  5. Oct 12, 2026✨ Angular Router без ожидания: неблокирующая загрузка ресурсов маршрута Как сделать навига…
  6. Oct 9, 2026✨ Нужен ли SCSS в 2026 году? Нативный CSS становится все мощнее и теперь поддерживает влож…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →