W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
使 ConnectableObservable
行為像普通的可觀察對象,并自動連接它。
refCount<T>(): MonoTypeOperatorFunction
<T>
沒有參數(shù)。
MonoTypeOperatorFunction<T>
在內(nèi)部,它計算對可觀察對象的訂閱,如果訂閱數(shù)大于0,則訂閱源(僅一次)。如果訂閱數(shù)小于1,則取消訂閱源。這樣,您可以確保發(fā)布的 refCount 之前的所有內(nèi)容僅具有單個訂閱,而與目標可觀察者的訂閱者數(shù)量無關。
請注意,使用 share
運算符與按順序使用 publish 運算符(使可觀察的熱點)和 refCount 運算符完全相同。
在下面的示例中,使用 publish 運算符將兩個間隔變?yōu)榭蛇B接的可觀察對象。第一個使用 refCount 運算符,第二個不使用它。您會注意到,可連接可觀察對象在調(diào)用其連接函數(shù)之前不會執(zhí)行任何操作。
import { interval } from 'rxjs';
import { tap, publish, refCount } from 'rxjs/operators';
// Turn the interval observable into a ConnectableObservable (hot)
const refCountInterval = interval(400).pipe(
tap((num) => console.log(`refCount ${num}`)),
publish(),
refCount()
);
const publishedInterval = interval(400).pipe(
tap((num) => console.log(`publish ${num}`)),
publish()
);
refCountInterval.subscribe();
refCountInterval.subscribe();
// 'refCount 0' -----> 'refCount 1' -----> etc
// All subscriptions will receive the same value and the tap (and
// every other operator) before the publish operator will be executed
// only once per event independently of the number of subscriptions.
publishedInterval.subscribe();
// Nothing happens until you call .connect() on the observable.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: