RxJS first

2020-10-14 10:14 更新

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

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

參量

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

returns

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

投擲

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

描述

僅發(fā)出第一個(gè)值?;騼H發(fā)出通過某些測(cè)試的第一個(gè)值。

第一張大理石圖

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

例子

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

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ā)生的第一次點(diǎn)擊

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>

參量 類型
謂詞 可選的。默認(rèn)值為undefined。類型:null
默認(rèn)值 可選的。默認(rèn)值為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
默認(rèn)值 可選的,默認(rèn)值為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
默認(rèn)值 可選的。默認(rèn)值為undefined。類型:D
returnsOperatorFunction<T, T | D>

也可以看看

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)