import { connectable, interval, Observable, Subject } from 'rxjs';const observable = interval(1000);/** * 1. Use the multicast operator in the pipe of the source observable. */const multicasted = connectable(observable);/** * 2. Subscribe to the multicasted observable and log out the next notification values. */const sub = multicasted.subscribe(console.log);/** * 3. Connect the subject to the source observable. */multicasted.connect();
Bonus
import { connectable, interval, Observable, Subject } from 'rxjs';const observable = interval(1000);/** * 1. Define a new Subject. */const subject = new Subject<number>();/** * 2. Use the multicast operator in the pipe of the source observable. */const multicasted = connectable(observable, { connector: () => subject});/** * 3. Subscribe to the multicasted observable and log out the next notification values. */const sub = multicasted.subscribe(console.log);/** * 4. Connect the subject to the source observable. */multicasted.connect();