Saltar al contenido

Pipe and Tap VS suscribirse con ngxs

Después de de una larga búsqueda de información solucionamos esta dificultad que tienen algunos usuarios. Te compartimos la respuesta y deseamos que te sea de gran apoyo.

Solución:

Mi respuesta tiene dos partes… Lo que pediste y lo que necesitas. Los valores de un Observable solo fluyen a través de los operadores de tubería cuando hay una suscripción activa. Es por eso que está viendo este comportamiento. Así que deberías hacer algo como esto:

this.store.select(state => state.auth.authUser).pipe(
  take(1),
  tap((data) => 
    console.log('[Tap] User Data', data)
  )
).subscribe();

Pero lo que parece que buscas es una instantánea de estado. Puedes hacer esto de la siguiente manera:

let data = this.store.selectSnapshot(state => state.auth.authUser);
console.log('[selectSnapshot] User Data', data);

¡Entiendo! Tengo que agregar subscribe(). Así es:

this.store.select(state => state.auth.authUser).pipe(
  take(1),
  tap((data) => 
    console.log('[Tap] User Data', data)
  )
).subscribe();

grifo (o hacer en la versión antigua de RxJS) -> Realizar acciones o efectos secundarios de forma transparente, como el registro (como ya dice la definición).

Pero, en su caso, olvidó “suscribirse()” a su Observable y es por eso que no ve sus “Datos de usuario” en la Consola.

En cambio, en el segundo caso, ya estás suscrito a un Observable.

Reseñas y valoraciones

Si aceptas, puedes dejar una noticia acerca de qué te ha impresionado de este ensayo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *