Проще говоря, варианты с *To
всегда будут использовать один и тот же Observable, который необходимо создать при создании всей цепочки, независимо от значений, излучаемых цепочкой. Они принимают Наблюдаемый в качестве параметра.
Варианты без *To
могут создавать и возвращать любые Наблюдаемые только тогда, когда их исходная Наблюдаемая излучает. Они принимают callback в качестве параметра.
Например, когда я использую mergeMapTo
, я всегда подписываюсь на одну и ту же наблюдаемую:
source.pipe(
mergeMapTo(of(1)),
)
Каждое излучение от source
всегда будет отображаться на of(1)
, и я никак не могу это изменить.
С другой стороны, просто mergeMap
Я могу вернуть любую наблюдаемую информацию, какую захочу, в зависимости от полученного значения:
source.pipe(
mergeMap(v => of(v * 2)),
)
Возможно, более простой способ подумать об этом - помнить, что *To
варианты отображают значение на константу (даже если это не «настоящая константа JavaScript»).