From 394314dd3d2cbd6516c9f972dae83c9c308705a8 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sun, 31 May 2015 08:33:14 -0400 Subject: [PATCH] refactor(operation) create: add/remove listeners --- lib/client/operation.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/lib/client/operation.js b/lib/client/operation.js index 2bf47412..2471ac7f 100644 --- a/lib/client/operation.js +++ b/lib/client/operation.js @@ -49,18 +49,19 @@ spero(function() { var parse = function(fn) { return function(data, callback) { - var progress = function(value) { + var listeners = { + progress: function(value) { Images.setProgress(value); }, - end = function() { + end: function() { callback(); - spero.removeListener('progress', progress); - spero.removeListener('error', error); - spero.removeListener('end', end); + events.forEach(function(name) { + spero.removeListener(name, listeners[name]); + }); }, - error = function(data) { + error: function(data) { var msg = data + '\n Continue?', is = confirm(msg); @@ -68,15 +69,17 @@ spero.continue(); else spero.abort(); - }; + } + }, + events = Object.keys(listeners); Images.show('top'); fn(data.from, data.to, data.names); - spero.on('progress', progress); - spero.on('end', end); - spero.on('error', error); + events.forEach(function(name) { + spero.on(name, listeners[name]); + }); }; };