Код запуска, когда либо наблюдаемые обновления - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть пара наблюдаемых в моей службе состояний, сгенерированных из темы поведения:

_state.sortModels$.subscribe(sortModels => {
    //do stuf
});

_state.filterModel$.subscribe(filterModel => {
    //do stuff
});

Я хочу иметь некоторый код, который выполняется при любом из наблюдаемых обновлений.Так, например, если sortModels обновит, это вызовет подписку и будет использовать предыдущую версию filterModel и наоборот.

Что-то вроде:

.subscribe((filterModel, sortModels) => {
    someMethod(filterModel, sortModels);
});

Я нахожу документацию RXJS трудной для интерпретациидля этого варианта использования, как и во всех их примерах, это таймеры, выводящие число, а не отдельные объекты.

В моем компоненте контейнера как объединить две наблюдаемые, так что, если при любом обновлении я могу инициировать код с обеими значениями?

1 Ответ

0 голосов
/ 07 декабря 2018

combineLatest - это точно то, что вам нужно:

Объединяет несколько наблюдаемых для создания наблюдаемой, значения которой рассчитываются по последним значениям каждоговходных данных Observables

combineLatest(_state.sortModels$,_state.filterModel$)
    .subscribe(([sortModels,filterModel])=>{
        someMethod(filterModel, sortModels);
    })
...