tap

Lleva a cabo un efecto colateral en cada emisión del Observable fuente, pero retorna un Observable que es idéntico a la fuente

chevron-rightSignaturahashtag

Firma

tap<T>(nextOrObserver?: NextObserver<T> | ErrorObserver<T> | CompletionObserver<T> | ((x: T) => void), error?: (e: any) => void, complete?: () => void): MonoTypeOperatorFunction<T>

Parámetros

Retorna

MonoTypeOperatorFunction<T>: Un Observable idéntico a la fuente, pero ejecuta el Observador o la/las callbacks en cada emisión.

Descripción

Intercepta cada emisión de la fuente y ejecuta una función. Retorna un Observable idéntico a la fuente siempre y cuando no ocurra ningún error.

Retorna un Observable que refleja al Observable fuente, pero modificado de tal manera para que el Observador que se le haya proporcionado al operador pueda ser llamado para llevar a cabo un efecto colateral por cada valor, error o completación emitidos por el Observable fuente. Si se produce cualquier error en Observador/manejadores mencionados anteriormente, este se envía de forma segura por el canal de error del Observable de salida.

Este operador es muy útil para depurar Observables (ver si el valor emitido es correcto) o para llevar a cabo cualquier tipo de efecto colateral.

Nota: este operador es diferente al subscribe del Observable. Si no se realiza una suscripción al Observable retornado por tap, los efectos colaterales que se hayan especificado no ocurrirán nunca. Por tanto, tap se limita a espiar a la ejecución existente, en lugar de disparar una ejecución como hace subscribe.

Ejemplos

Hacer un console.log para ver el antes y el después de una operación map

StackBlitzarrow-up-right

import { of } from "rxjs";
import { map, tap } from "rxjs/operators";

const fruit$ = of("Cereza", "Fresa", "Arándano");

fruit$
  .pipe(
    tap((fruit) => console.log(`Antes: ${fruit}`)),
    map((fruit) => fruit.toUpperCase()),
    tap((fruit) => console.log(`Después: ${fruit}`))
  )
  .subscribe();

/* Salida:
Antes: Cereza, Después: CEREZA,
Antes: Fresa, Después: FRESA,
Antes: Arándano, Después: ARÁNDANO
*/

Actualizar una variable externa con la respuesta de una petición

StackBlitzarrow-up-right

Ejemplo de la documentación oficial

Proyecta cada click a su posición clientX, después de hacer un console.log del evento click completo

chevron-rightSobrecargashashtag

Firma

tap(next: null, error: null, complete: () => void): MonoTypeOperatorFunction<T>

Parámetros

Retorna

MonoTypeOperatorFunction<T>

Firma

tap(next: null, error: (error: any) => void, complete?: () => void): MonoTypeOperatorFunction<T>

Parámetros

Retorna

MonoTypeOperatorFunction<T>

Firma

tap(next: (value: T) => void, error: null, complete: () => void): MonoTypeOperatorFunction<T>

Parámetros

Retorna

MonoTypeOperatorFunction<T>

Firma

tap(next?: (x: T) => void, error?: (e: any) => void, complete?: () => void): MonoTypeOperatorFunction<T>

Parámetros

Retorna

MonoTypeOperatorFunction<T>

Firma

tap(observer: PartialObserver<T>): MonoTypeOperatorFunction<T>

Parámetros

Retorna

MonoTypeOperatorFunction<T>

Recursos adicionales

Source codearrow-up-right

Documentación oficial en inglésarrow-up-right

Last updated