Tap Operator

tap(tapFn::F) where { F <: Function }

Creates a tap operator, which performs a side effect for every emission on the source Observable, but return an Observable that is identical to the source.


  • tapFn::Function: side-effect tap function with (data) -> Nothing signature


Stream of type <: Subscribable{L} where L refers to type of source stream


using Rocket

source = from([ 1, 2, 3 ])
subscribe!(source |> tap((d) -> println("In tap: $d")), logger())

# output

In tap: 1
[LogActor] Data: 1
In tap: 2
[LogActor] Data: 2
In tap: 3
[LogActor] Data: 3
[LogActor] Completed

See also: AbstractOperator, InferableOperator, ProxyObservable, logger



Returns an Observable that resembles the source Observable, but modifies it so that the provided Observer is called to perform a side effect for every value emitted by the source.

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

Note: this operator differs from 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.

See also