RxJS publish

2020-10-13 10:32 更新

返回一个 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 $ 成为热门,然后将每个内部可观察项合并为一个并进行订阅。

  1. import { of, zip, interval, merge } from "rxjs";
  2. import { map, publish, tap } from "rxjs/operators";
  3. const source$ = zip(interval(2000), of(1, 2, 3, 4, 5, 6, 7, 8, 9)).pipe(
  4. map(values => values[1])
  5. );
  6. source$
  7. .pipe(
  8. publish(multicasted$ =>
  9. merge(
  10. multicasted$.pipe(tap(x => console.log('Stream 1:', x))),
  11. multicasted$.pipe(tap(x => console.log('Stream 2:', x))),
  12. multicasted$.pipe(tap(x => console.log('Stream 3:', x))),
  13. )
  14. )
  15. )
  16. .subscribe();
  17. // Results every two seconds
  18. // Stream 1: 1
  19. // Stream 2: 1
  20. // Stream 3: 1
  21. // ...
  22. // Stream 1: 9
  23. // Stream 2: 9
  24. // 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>

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号