从可观察流中排除了哪些值?

时间:2018-04-25 06:39:05

标签: javascript rxjs reactive-programming

我需要创建一个函数,该函数可以检测过滤管道运算符从可观察流(热或冷)中排除了哪些值。操作员可以是this list中的任何一个(例如:debounce,throttle,filter,...)。

请注意,我希望运算符以任何方式转换 not 值,只是在输出中包含或排除。

我在打字稿中的函数签名可能如下所示:

function applyFilter<T>(
    source: Observable<T>,
    operator: (source: Observable<T>) => Observable<T>,
    ejectedValues: Observer<T>
): Observable<T> {
    // ...    
}

使用场景如下所示:

let source = Rx.Observable.from([1, 2, 3, 4, 5]);
let observer = Rx.Subject<int>();

let output = applyFilter<T>(source, filter((x) => x % 2 === 0), observer);

在这种情况下,output会发出2 , 4observer会发出1, 3, 5

PS。请注意,这也需要适用于热观察。

0 个答案:

没有答案