tap

Perform a side effect for every emission on the source Observable, but return an Observable that is identical to the source.

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

Parameters

nextOrObserver

Optional. Default is undefined.

A normal Observer object or a callback for next.

error

Optional. Default is undefined.

Callback for errors in the source.

complete

Optional. Default is undefined.

Callback for the completion of the source.

Returns

MonoTypeOperatorFunction<T>: An Observable identical to the source, but runs the specified Observer or callback(s) for each item.

Description

Intercepts each emission on the source and runs a function, but returns an output which is identical to the source as long as errors don't occur.

Returns a mirrored Observable of the source Observable, but modified so that the provided Observer is called to perform a side effect for every value, error, and completion emitted by the source. Any errors that are thrown in the aforementioned Observer or handlers are safely sent down the error path of the output Observable.

This operator is useful for debugging your Observables for the correct values or performing other side effects.

Note: this is different to a subscribe on the Observable. If the Observable returned by tap is not subscribed, the side effects specified by the Observer will never happen. tap therefore simply spies on existing execution, it does not trigger an execution to happen like subscribe does.

Example

Map every click to the clientX position of that click, while also logging the click event

import { fromEvent } from 'rxjs'; import { tap, map } from 'rxjs/operators'; const clicks = fromEvent(document, 'click'); const positions = clicks.pipe( tap(ev => console.log(ev)), map(ev => ev.clientX), ); positions.subscribe(x => console.log(x));

Overloads

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

Parameters

next

Type: null | undefined.

error

Type: null | undefined.

complete

Type: () => void.

Returns

MonoTypeOperatorFunction<T>

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

Parameters

next

Type: null | undefined.

error

Type: (error: any) => void.

complete

Optional. Default is undefined.

Type: () => void.

Returns

MonoTypeOperatorFunction<T>

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

Parameters

next

Type: (value: T) => void.

error

Type: null | undefined.

complete

Type: () => void.

Returns

MonoTypeOperatorFunction<T>

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

Parameters

next

Optional. Default is undefined.

Type: (x: T) => void.

error

Optional. Default is undefined.

Type: (e: any) => void.

complete

Optional. Default is undefined.

Type: () => void.

Returns

MonoTypeOperatorFunction<T>

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

Parameters

observer

Type: PartialObserver.

Returns

MonoTypeOperatorFunction<T>

See Also