RxJS partition

2020-10-13 18:50 更新

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

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

參量

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

退貨

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

描述

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

大理石分割圖

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

將一組數(shù)字劃分為奇數(shù)和偶數(shù)可觀察數(shù)

import { of, partition } from 'rxjs';


const observableValues = of(1, 2, 3, 4, 5, 6);
const [evens$, odds$] = partition(observableValues, (value, index) => value % 2 === 0);


odds$.subscribe(x => console.log('odds', x));
evens$.subscribe(x => console.log('evens', x));


// Logs:
// odds 1
// odds 3
// odds 5
// evens 2
// evens 4
// evens 6

也可以看看

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)