Estoy siguiendo el tutorial en https://angular.io , y tengo problemas para encontrar documentación; específicamente para los métodos pipe
y tap
. No puedo encontrar nada en https://angular.io o http://reactivex.io/rxjs/ .
Mi entendimiento es que pipe
y tap
son ambos métodos de Observable
que se importa desde RxJS, correcto? ¿Qué se supone que deben hacer?
¿Son estos métodos parte de Angular? ¿Qué hacen estos dos métodos?
Respuestas:
Tienes razón, la documentación carece de esos métodos. Sin embargo, cuando busqué en el repositorio de rxjs, encontré buenos comentarios sobre los operadores de grifo (demasiado largos para pegar aquí) y de tuberías :
En breve:
Tubería : se utiliza para unir operadores funcionales en una cadena. Antes podíamos hacerlo
observable.filter().map().scan()
, pero dado que cada operador RxJS es una función independiente en lugar de un método de Observable, necesitamospipe()
hacer una cadena de esos operadores (ver el ejemplo anterior).Toque : puede realizar efectos secundarios con los datos observados, pero no modifica la transmisión de ninguna manera. Anteriormente llamado
do()
. Puede pensarlo como si observable fuera una matriz a lo largo del tiempo, entoncestap()
sería equivalente aArray.forEach()
.fuente
do
que se renombró comotap
... En resumen, es un desastre. github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.mdfilter
funciona igual queArray.filter
: mantiene solo los valores que cumplen la regla (en este caso divisible por 2);map
(nuevamente comoArray.map
) cambia cada valor (en este caso lo agrega a sí mismo);scan
es muy interesante y aquí hay una buena explicación: learnrxjs.io/operators/transformation/scan.html