W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
將源的發(fā)射延遲可觀察到的時間間隔 由另一個 Observable 的發(fā)射確定。
delayWhen<T>(delayDurationSelector: (value: T, index: number) => Observable
<any>, subscriptionDelay?: Observable
<any>): MonoTypeOperatorFunction
<T>
delayDurationSelector | 一個功能 為源 Observable 發(fā)出的每個值返回一個 Observable, 然后用于延遲該項目在輸出 Observable 上的發(fā)射 直到從此函數(shù)返回的 Observable 發(fā)出值為止。 |
---|---|
subscriptionDelay | 可選的。 默認(rèn)值為 undefined 。 一個可觸發(fā)的 訂閱源 Observable 發(fā)出任何值后。 |
MonoTypeOperatorFunction<T>
:一個可觀察到的延遲排放源的方法 可觀察到的時間由以下條件返回: delayDurationSelector
。
就像 delay
,但是時間跨度 延遲持續(xù)時間由第二個 Observable 確定。
delayWhen
時間將源發(fā)出的每個發(fā)射值移動一個 時間跨度由另一個 Observable 確定。 當(dāng)源發(fā)出值時, 該 delayDurationSelector
函數(shù)以源值為 參數(shù),并且應(yīng)該返回一個 Observable,稱為“持續(xù)時間” Observable。 僅當(dāng)持續(xù)時間為 Observable發(fā)出一個值或完成。 通知程序的完成觸發(fā)源值的發(fā)出 是不推薦使用的行為,并將在以后的版本中刪除。
(可選) delayWhen
采用第二個參數(shù) subscriptionDelay
,其中 是一個可觀察的。 當(dāng) subscriptionDelay
發(fā)出其第一個值或 完成后,源 Observable 已訂閱并開始運(yùn)行 在上一段中描述。 如果 subscriptionDelay
未提供, delayWhen
輸出后將立即訂閱源 Observable 可觀察的已訂閱。
將每次點擊延遲隨機(jī)的時間,介于0到5秒之間
import { fromEvent, interval } from 'rxjs';
import { delayWhen } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const delayedClicks = clicks.pipe(
delayWhen(event => interval(Math.random() * 5000)),
);
delayedClicks.subscribe(x => console.log(x));
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: