RxJS publish

2020-10-13 10:32 更新

返回一個(gè) ConnectableObservable,它是多種 Observable,它等待直到其 connect 方法被調(diào)用,然后才開始向已預(yù)訂該對象的 Observer 發(fā)送項(xiàng)目。

publish<T, R>(selector?: OperatorFunction<T, R>): MonoTypeOperatorFunction<T> | OperatorFunction<T, R>

參量

選擇器 可選的。默認(rèn)值為undefined??蛇x的選擇器功能,可以根據(jù)需要多次使用多播的源序列,而不會(huì)導(dǎo)致對該源序列的多個(gè)預(yù)訂。給定來源的訂閱者將從訂閱開始就接收該來源的所有通知。

returns

MonoTypeOperatorFunction<T> | OperatorFunction<T, R>:一個(gè) ConnectableObservable,它在連接時(shí)導(dǎo)致源 Observable 向其 Observer 發(fā)射項(xiàng)目。

描述

使感冒變熱

發(fā)布大理石圖

例子

通過應(yīng)用發(fā)布運(yùn)算符使 source $ 成為熱門,然后將每個(gè)內(nèi)部可觀察項(xiàng)合并為一個(gè)并進(jìn)行訂閱。

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>>參量沒有參數(shù)。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>

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)