Селекторы - это чистые функции, которые не наблюдаются.
Вероятно, вы спрашиваете об операторе или функции select
.
this.store.pipe(select(...)) // or this.store.select(...)
Это просто
this.store.pipe(
map(...),
distinctUntilChanged()
)
map
и distinctUntilChanged
на самом деле не делают наблюдаемое горячее или холодное. Они подписываются на свой источник, только если подписаны на него, поэтому данные будут проходить через них, только если вы подпишетесь. Но если источник (например, магазин) получает товары от производителей до того, как вы подпишетесь (т.е. горячо), вы их не получите.
Таким образом, подписка на this.store.pipe(select(...))
не скажет магазину о начале производства значений, магазин будет выдавать значения перед этим, поскольку он активно слушает своих производителей (редукторы и действия), но select
не будет слушайте магазин, и никакие данные не будут проходить через него, если вы не подпишетесь.