Pipe
в основном принимает выходные данные функции и передает их в качестве входных данных для другой функции. Это действительно отличный и эффективный способ манипулирования данными, и он действительно мощный.
Мы в основном передаем вывод чего-либо в другую функцию, которая может модифицировать входящие данные или просто для дополнительной логики c на верхняя часть данных (триггерные побочные эффекты).
Мы можем иметь несколько логик, связанных в операторе pipe
.
Subscribe
вызывается для наблюдаемой, чтобы подписаться на окончательные данные, которые выталкивается из наблюдаемой.
Быстрый пример: у меня есть наблюдаемая, которая отправляет строку «Мир».
worldObservable$.pipe(
tap(data=>console.log(data)), // Prints "World"
map(data=> `Hello ${data}`)
)
.subscribe(data=>console.log(data)); // Prints "Hello World"
В этом примере сначала я использую tap
, чтобы получить данные, а затем войти в него. Затем я изменяю данные с помощью оператора map
, который изменяет исходные данные. Когда я подписываюсь, он записывает измененные данные вместо исходных.
Надеюсь, это дало вам дополнительную ясность.