RxJS partition(已棄用)

2020-10-14 10:27 更新

將源Observable分為兩個,一個具有滿足謂詞的值,另一個具有不滿足謂詞的值。

棄用說明

改用partition靜態(tài)創(chuàng)建函數(shù)

partition<T>(predicate: (value: T, index: number) => boolean, thisArg?: any): UnaryFunction<Observable<T>, [Observable<T>, Observable<T>]>

參量

謂詞 評估源 Observable 發(fā)出的每個值的函數(shù)。如果返回true,則在返回數(shù)組的第一個 Observable false上發(fā)射該值,如果 該值在數(shù)組的第二個 Observable 上發(fā)射。該 index參數(shù)是i從訂閱以來發(fā)生的第 i 個源發(fā)射的編號0。
thisArg 可選的。默認(rèn)值為undefined。一個可選的參數(shù)來確定的值this 的predicate功能。

returns

UnaryFunction<Observable<T>, [Observable<T>, Observable<T>]>:具有兩個 Observables 的數(shù)組:一個具有通過謂詞的值,另一個具有未通過謂詞的值。

描述

類似于 filter,但返回兩個 Observables:一個類似于的輸出 filter,另一個則具有未通過條件的值。

大理石分割圖

partition輸出帶有兩個 Observable 的數(shù)組,該數(shù)組通過給定predicate函數(shù)對源 Observable 中的值進(jìn)行分區(qū)。該數(shù)組中的第一個 Observable 發(fā)出源值,謂詞參數(shù)對其返回 true。第二個 Observable 發(fā)出謂詞返回 false 的源值。第一個行為類似于filter,第二個行為filter與否定謂詞相似。

將點擊事件分區(qū)為 DIV 元素上的事件和其他位置上的事件

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


const clicks = fromEvent(document, 'click');
const parts = clicks.pipe(partition(ev => ev.target.tagName === 'DIV'));
const clicksOnDivs = parts[0];
const clicksElsewhere = parts[1];
clicksOnDivs.subscribe(x => console.log('DIV clicked: ', x));
clicksElsewhere.subscribe(x => console.log('Other clicked: ', x));

也可以看看

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號