From 8a2bea0b28528328b882376af63248a0ebb8e78c Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Wed, 24 Apr 2019 08:31:09 +0200 Subject: [PATCH] Event Handler class re done --- EventHandler.js | 37 +++++++++---------------------------- 1 file changed, 9 insertions(+), 28 deletions(-) diff --git a/EventHandler.js b/EventHandler.js index dcef6df7d..ad843afeb 100644 --- a/EventHandler.js +++ b/EventHandler.js @@ -11,36 +11,17 @@ function newEventHandler () { return thisObject - function initialize () { - - } - function listenToEvent (eventType, handler, extraData) { - eventHandlers.push([eventType, handler, extraData]) + let eventSubscriptionId = Math.trunc(Math.random() * 1000000) + eventHandlers.push([eventType, handler, extraData, eventSubscriptionId]) + return eventSubscriptionId } - function stopListening (pEventType, pHandler) { - if (pHandler === undefined) { - pHandler = 'Anonymous Function' - } - + function stopListening (pEventSubscriptionId) { for (let i = 0; i < eventHandlers.length; i++) { - let record = eventHandlers[i] - let eventType = record[0] - let handler = record[1] - - if (pHandler === 'Anonymous Function') { - if (pEventType === eventType) { - eventHandlers.splice(i, 1) - - return - } - } else { - if (pEventType === eventType && pHandler.toString() === handler.toString()) { - eventHandlers.splice(i, 1) - - return - } + if (pEventSubscriptionId === eventHandlers[i][3]) { + eventHandlers.splice(i, 1) + return } } } @@ -50,8 +31,8 @@ function newEventHandler () { /* We will execute all the functions listening to this event type. */ if (eventHandlers[i][0] === eventType) { - var handler = eventHandlers[i][1] - var extraData = eventHandlers[i][2] + let handler = eventHandlers[i][1] + let extraData = eventHandlers[i][2] handler(event, extraData) }