# TapOnSubscribe Operator

Rocket.tap_on_subscribeFunction
tap_on_subscribe(tapFn::F) where { F <: Function }

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

Arguments

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

Producing

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

Examples

using Rocket

source = from([ 1, 2, 3 ])
subscribe!(source |> tap_on_subscribe(() -> println("Someone subscribed")), logger())
;

# output

Someone subscribed
[LogActor] Data: 1
[LogActor] Data: 2
[LogActor] Data: 3
[LogActor] Completed

source

## Description

Returns an Observable that resembles the source Observable, but modifies it so that the provided Observer is called to perform a side effect on subscription to the source.

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

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