W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
將源的發(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 | 可選的。 默認值為 undefined 。 一個可觸發(fā)的 訂閱源 Observable 發(fā)出任何值后。 |
MonoTypeOperatorFunction<T>
:一個可觀察到的延遲排放源的方法 可觀察到的時間由以下條件返回: delayDurationSelector
。
就像 delay
,但是時間跨度 延遲持續(xù)時間由第二個 Observable 確定。
delayWhen
時間將源發(fā)出的每個發(fā)射值移動一個 時間跨度由另一個 Observable 確定。 當源發(fā)出值時, 該 delayDurationSelector
函數(shù)以源值為 參數(shù),并且應該返回一個 Observable,稱為“持續(xù)時間” Observable。 僅當持續(xù)時間為 Observable發(fā)出一個值或完成。 通知程序的完成觸發(fā)源值的發(fā)出 是不推薦使用的行為,并將在以后的版本中刪除。
(可選) delayWhen
采用第二個參數(shù) subscriptionDelay
,其中 是一個可觀察的。 當 subscriptionDelay
發(fā)出其第一個值或 完成后,源 Observable 已訂閱并開始運行 在上一段中描述。 如果 subscriptionDelay
未提供, delayWhen
輸出后將立即訂閱源 Observable 可觀察的已訂閱。
將每次點擊延遲隨機的時間,介于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)系方式:
更多建議: