Как подписка (отписаться) работает внутри магазина редуксов? - PullRequest
0 голосов
/ 03 февраля 2019

in в этом руководстве Дана Абрамова он воссоздает базовую реализацию редукционного магазина.

Метод subscribe выглядит следующим образом

const subscribe = (listener)=>{
    listeners.push(listener) //subscribe
      return ()=>{
        listeners = listeners.filter(l => l !== listener) //unsubscribe
      }
  }

каждый раз, когда вызывается dispatch, он вызывает все функции в массиве listeners.

из документов с избыточностью:

Чтобы отменить подписку прослушивателя изменений, вызовите функцию, возвращаемую подпиской.

const unsubscribe = store.subscribe(handleChange)

Почему это обрабатывается таким образом?Функция кажется мне очень нелогичной и выглядит более сложной, чем реализация выделенного метода unsubscribe.

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