NgRedux + Angular + select срабатывает при подписке

Я уже несколько недель использую в своем угловом приложении избыточность, но кое-что заметил:

Когда я выбираю часть своего магазина для мониторинга изменений, скажем так:

В ngOnInit() app.component.ts

this.ngRedux.select(s => s.counter).subscribe((counter: number) => {
    console.log(counter)
});

Console.log(counter) выполняется каждый раз, когда изменяется значение моего счетчика, это нормально, вот как это должно работать.

НО, обратный вызов также выполняется, когда я впервые подписываюсь. Так вот так:

  1. Введите onNgInit()
  2. Выполнение select()
  3. Выполнение подписки ()
  4. Выполнение моего обратного вызова
  5. ------- Позже при смене счетчика: -------
  6. Выполнение моего обратного вызова

Моя проблема в том, что я не хочу, чтобы мой обратный вызов выполнялся на шаге 4, потому что хранилище не изменилось!

Есть ли проблема в моем понимании? Это должно работать так? Если да: могу ли я что-то сделать, чтобы это изменить?

Спасибо

1 ответ

Решение

К сожалению, это стандартное поведение .subscribe(), Единственное, что вы можете сделать, это сравнить текущую стоимость counter с новым и только реагируйте на это, если изменения произошли.

Другие вопросы по тегам