RxJS skipUntil

2020-10-13 10:13 更新

返回一個 Observable,它跳過源 Observable 發(fā)出的項目,直到第二個 Observable 發(fā)出一項為止。

skipUntil<T>(notifier: Observable<any>):MonoTypeOperatorFunction<T>

參量

通知者 第二個 Observable 必須在源 Observable 的元素開始被生成的 Observable 鏡像之前發(fā)射一個項目。

returns

MonoTypeOperatorFunction<T>:一個 Observable,它從源 Observable 跳過項目,直到第二個 Observable 發(fā)射一個項目,然后發(fā)射其余項目。

描述

skipUntil操作者使可觀察到的流,以跳過值的發(fā)射,直至通過在可觀察到的發(fā)射的第一個值。與用戶交互, http 請求的響應(yīng)或等待特定時間一起使用時,此功能特別有用。

skipUntil大理石圖

在內(nèi)部,skipUntil運算符訂閱傳入的 observable(在以下稱為 notifier),以便識別其第一個值的發(fā)出。發(fā)生這種情況時,操作員將退訂通知者,并開始發(fā)出 可觀察到的值。如果通知程序完成或引發(fā)錯誤而之前未發(fā)出任何值,則它將永遠不會讓可觀察的發(fā)出任何值。

在以下示例中,將跳過所有可觀察到的時間間隔的發(fā)射值,直到用戶單擊頁面中的任何位置為止。

import { interval, fromEvent } from 'rxjs';
import { skipUntil } from 'rxjs/operators';


const intervalObservable = interval(1000);
const click = fromEvent(document, 'click');


const emitAfterClick = intervalObservable.pipe(
  skipUntil(click)
);
// clicked at 4.6s. output: 5...6...7...8........ or
// clicked at 7.3s. output: 8...9...10..11.......
const subscribe = emitAfterClick.subscribe(value => console.log(value));
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號