Спасибо за ваш вопрос!
Я думаю, вы могли бы использовать оператор bufferCount со значением 2.
Это создаст наблюдаемое, которое будет испускать значения только тогда, когда буфер заполнен и испускает значения в виде массива . Для получения дополнительной информации вы можете проверить официальную документацию .
P.S. Размер буфера в вашем случае должен быть 2.
this.store.select(currentSearchSelector)
.pipe(bufferCount(2))
.subscribe(([previousSearch, currentSearch]) => {
this.currentSearchId = currentSearch.id;
console.log('current ' + this.currentSearchId);
console.log('previous ' + previousSearch.id);
});
Также есть пример с оператором bufferCount
StackBlitz
Обновление
Парный оператор - это более конкретная версия bufferCount, которая просто испускает два последних элемента вместе и, вероятно, более уместна здесь.
В зависимости от того, что вы выберете, вам, вероятно, также потребуется связать его с оператором фильтрации , чтобы проверить изменение поискового идентификатора.