RxJS publish
返回一个 ConnectableObservable,它是多种 Observable,它等待直到其 connect 方法被调用,然后才开始向已预订该对象的 Observer 发送项目。
publish<T, R>(selector?: OperatorFunction
<T, R>): MonoTypeOperatorFunction
<T> | OperatorFunction
<T, R>
参量
选择器 | 可选的。默认值为undefined 。可选的选择器功能,可以根据需要多次使用多播的源序列,而不会导致对该源序列的多个预订。给定来源的订阅者将从订阅开始就接收该来源的所有通知。 |
---|
returns
MonoTypeOperatorFunction<T> | OperatorFunction<T, R>
:一个 ConnectableObservable,它在连接时导致源 Observable 向其 Observer 发射项目。
描述
使感冒变热
例子
通过应用发布运算符使 source $ 成为热门,然后将每个内部可观察项合并为一个并进行订阅。
import { of, zip, interval, merge } from "rxjs";
import { map, publish, tap } 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$ =>
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
超载
publish(): UnaryFunction<Observable<T>, ConnectableObservable<T>>
参量没有参数。returnsUnaryFunction<Observable<T>, ConnectableObservable<T>>
publish(selector: (shared: Observable<T>) => O): OperatorFunction<T, ObservedValueOf<O>>
参量 | 类型 |
---|---|
选择器 | 类型:(shared: Observable) => O |
returnsOperatorFunction<T, ObservedValueOf<O>>
publish(selector: MonoTypeOperatorFunction<T>): MonoTypeOperatorFunction<T>
参量 | 类型 |
---|---|
选择器 | 类型:MonoTypeOperatorFunction |
returnsMonoTypeOperatorFunction<T>