Returns a ConnectableObservable, which is a variety of Observable that waits until its connect method is called
before it begins emitting items to those Observers that have subscribed to it.
publish<T, R>(selector?: OperatorFunction<T, R>): MonoTypeOperatorFunction<T> | OperatorFunction<T, R>
Parameters
selector |
Optional. Default is undefined .
Optional selector function which can use the multicasted source sequence as many times
as needed, without causing multiple subscriptions to the source sequence.
Subscribers to the given source will receive all notifications of the source from the time of the subscription on.
|
Returns
MonoTypeOperatorFunction<T> | OperatorFunction<T, R>
: A ConnectableObservable that upon connection causes the source Observable to emit items to its Observers.
Description
Makes a cold Observable hot
Examples
Make source$ hot by applying publish operator, then merge each inner observable into a single one
and subscribe.
import { of, zip, interval, merge } from "rxjs";
import { map, publish } from "rxjs/operators";
const source$ = zip(
interval(2000),
of(1, 2, 3, 4, 5, 6, 7, 8, 9),
).pipe(
map(values => values[1])
);
source$.pipe(
publish(multicasted$ => {
return merge(
multicasted$.pipe(tap(x => console.log('Stream 1:', x))),
multicasted$.pipe(tap(x => console.log('Stream 2:', x))),
multicasted$.pipe(tap(x => console.log('Stream 3:', x))),
);
})).subscribe();
/* Results every two seconds
Stream 1: 1
Stream 2: 1
Stream 3: 1
...
Stream 1: 9
Stream 2: 9
Stream 3: 9
Overloads
publish(): UnaryFunction<Observable<T>, ConnectableObservable<T>>
Parameters
There are no parameters.
Returns
UnaryFunction<Observable<T>, ConnectableObservable<T>>
|
publish(selector: (shared: Observable<T>) => O): OperatorFunction<T, ObservedValueOf<O>>
Parameters
selector |
Type: (shared: Observable) => O .
|
Returns
OperatorFunction<T, ObservedValueOf<O>>
|
publish(selector: MonoTypeOperatorFunction<T>): MonoTypeOperatorFunction<T>
Parameters
selector |
Type: MonoTypeOperatorFunction .
|
Returns
MonoTypeOperatorFunction<T>
|