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
.