Я читаю исходный код redux.Как понять наблюдаемую функцию в createStore
Кто-нибудь может помочь мне понять функцию в createStore здесь?
Кажется, что реализована другая версия шаблона наблюдателя.
вопросы:
я не найдено никаких кодов, называемых эту функцию, почему код появляется здесь. в чем цель? 2. как вызвать эту функцию с помощью магазина (ключ генерируется SYMBOLE ($$ наблюдаемом))
function observable() {
var _ref;
var outerSubscribe = subscribe;
return _ref = {
/**
* The minimal observable subscription method.
* @param {Object} observer Any object that can be used as an observer.
* The observer object should have a `next` method.
* @returns {subscription} An object with an `unsubscribe` method that can
* be used to unsubscribe the observable from the store, and prevent further
* emission of values from the observable.
*/
subscribe: function subscribe(observer) {
if (typeof observer !== 'object') {
throw new TypeError('Expected the observer to be an object.');
}
function observeState() {
if (observer.next) {
observer.next(getState());
}
}
observeState();
var unsubscribe = outerSubscribe(observeState);
return { unsubscribe: unsubscribe };
}
}, _ref[$$observable] = function() {
return this;
}, _ref;
}
// When a store is created, an "INIT" action is dispatched so that every
// reducer returns their initial state. This effectively populates
// the initial state tree.
dispatch({ type: ActionTypes.INIT });
return _ref2 = {
dispatch: dispatch,
subscribe: subscribe,
getState: getState,
replaceReducer: replaceReducer
}, _ref2[$$observable] = observable, _ref2;
}
поддельный код:
нам нужно что-то вроде
var store$= store[$$observable]()
, чтобы получить наблюдаемый. и любой желающий получать уведомление, если состояние изменено, необходимо сделать
магазин $ .subscribe (observer);
но сейчас. Я не могу получить в магазине [$$] наблюдаемую