RxJS first

2020-10-14 10:14 更新

僅發(fā)出源 Observable 發(fā)出的第一個值(或滿足某些條件的第一個值)。

first<T, D>(predicate?: (value: T, index: number, source:Observable<T>) => boolean, defaultValue?: D): OperatorFunction<T, T | D>

參量

謂詞 可選的。默認值為 undefined。每個項目都調用一個可選函數(shù)來測試條件匹配。
默認值 可選的。默認值為 undefined。如果在源上找不到有效值,則發(fā)出默認值。

returns

OperatorFunction<T, T | D>:符合條件的第一項的可觀察值。

投擲

EmptyError``error 如果 Observable 在 next發(fā)送任何通知之前完成,則將 EmptyError 傳遞給 Observer 的回調。

描述

僅發(fā)出第一個值。或僅發(fā)出通過某些測試的第一個值。

第一張大理石圖

如果不帶任何參數(shù)調用,則first發(fā)出源 Observable 的第一個值,然后完成。如果使用 predicate函數(shù)調用,則 first 發(fā)出與指定條件匹配的源的第一個值。還可能不建議使用 resultSelector函數(shù),以根據(jù)輸入值生成輸出值 defaultValue,如果源在發(fā)出有效值之前完成,則發(fā)出a。如果 defaultValue未提供則拋出錯誤, 并且找不到匹配的元素。

例子

僅發(fā)出發(fā)生在 DOM 上的第一次點擊

import { fromEvent } from 'rxjs';
import { first } from 'rxjs/operators';


const clicks = fromEvent(document, 'click');
const result = clicks.pipe(first());
result.subscribe(x => console.log(x));

發(fā)出 DIV 發(fā)生的第一次點擊

import { fromEvent } from 'rxjs';
import { first } from 'rxjs/operators';


const clicks = fromEvent(document, 'click');
const result = clicks.pipe(first(ev => ev.target.tagName === 'DIV'));
result.subscribe(x => console.log(x));

超載

first(predicate?: null, defaultValue?: D): OperatorFunction<T, T | D>

參量 類型
謂詞 可選的。默認值為undefined。類型:null。
默認值 可選的。默認值為undefined。類型:D

returnsOperatorFunction<T, T | D>

first(predicate: (value: T, index: number, source: Observable<T>) => value is S, defaultValue?: S): OperatorFunction<T, S>

參量 類型
謂詞 類型:(value: T, index: number, source: Observable) => value is S
默認值 可選的,默認值為undefined。類型:S

returnsOperatorFunction<T, S>

first(predicate: (value: T, index: number, source: Observable<T>) => boolean, defaultValue?: D): OperatorFunction<T, T | D>

參量 類型
謂詞 類型:(value: T, index: number, source: Observable) => boolean
默認值 可選的。默認值為undefined。類型:D
returnsOperatorFunction<T, T | D>

也可以看看

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號