Есть код диспетчеризации
var eventSubscribers = {};
//Диспетчирезация события
this.dispatch = function (eventName, payload){
if(eventSubscribers.hasOwnProperty(eventName)){
eventSubscribers[eventName].forEach(function (eventHandler){
eventHandler(payload);
});
}
return true;
};
и подписки на событие
//Подписка на событие. Возвращает метод отписки handler от события
this.subscribe = function (eventName, handler){
if(typeof handler !== 'function'){
return;
}
if(!eventSubscribers.hasOwnProperty(eventName)){
eventSubscribers[eventName] = [];
}
eventSubscribers[eventName].push(handler);
return function (){
eventSubscribers[eventName] = eventSubscribers[eventName].filter(function (currentHandler) {
return currentHandler !== handler;
});
}
}
В чем разница по производимому действию диспетчеризации и подписки на событие? Ведь если в коде написано
if(eventSubscribers.hasOwnProperty(eventName)){
eventSubscribers[eventName].forEach(function (eventHandler){
eventHandler(payload);
});
то складывается впечатление, что на каждое событие eventSubscribers[eventName]
подписывается обработчик события eventHandler
. Такое ощущение, что
eventSubscribers[eventName].forEach(function (eventHandler){
eventHandler(payload);
});
и
eventSubscribers[eventName].push(handler);
делают одно и то же.
Отличие очевидно:
Ничего общего.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Получаю ответ от сервера и на его основе выводу на страницу результаты поискав значениях может приходить null
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение