Какие значения были исключены из наблюдаемого потока? - PullRequest
0 голосов
/ 25 апреля 2018

Мне нужно создать функцию, которая может определять, какие значения были исключены из наблюдаемого потока (горячего или холодного) оператором фильтрующей трубы. Оператор может быть любым из этого списка (например: debounce, throttle, filter, ...).

Обратите внимание, что я ожидал бы, что значения не будут каким-либо образом преобразованы оператором, просто включены или исключены из вывода.

Моя подпись функции в машинописи может выглядеть примерно так:

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 , 4, а observer будет излучать 1, 3, 5.

PS. Обратите внимание, что это должно работать и для горячих наблюдаемых.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...