mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-07-25 00:50:59 +00:00
feature(util) mv addListener, removeListener from cloudfunc
This commit is contained in:
parent
e7dad86f91
commit
5e12b475bb
4 changed files with 77 additions and 60 deletions
67
lib/util.js
67
lib/util.js
|
|
@ -26,6 +26,73 @@
|
|||
return new F();
|
||||
};
|
||||
|
||||
/**
|
||||
* add listener to observer
|
||||
*
|
||||
* @param name - event name
|
||||
* @param func - function
|
||||
* @param allListeners - listeners array
|
||||
* @param observer - observer object
|
||||
*/
|
||||
this.addListener = function(name, func, allListeners, observer) {
|
||||
var listeners, obj,
|
||||
type = Util.getType(name);
|
||||
|
||||
switch(type) {
|
||||
case 'string':
|
||||
listeners = allListeners[name];
|
||||
|
||||
if (!listeners)
|
||||
listeners = allListeners[name] = [];
|
||||
|
||||
listeners.push(func);
|
||||
|
||||
if (func && observer)
|
||||
observer.on(name, func);
|
||||
|
||||
break;
|
||||
|
||||
case 'object':
|
||||
obj = name;
|
||||
|
||||
Object.keys(obj).forEach(function(name) {
|
||||
func = obj[name];
|
||||
Util.addListener(name, func, allListeners, observer);
|
||||
});
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* remove listener from observer
|
||||
*
|
||||
* @param name - event name
|
||||
* @param func - function
|
||||
* @param allListeners - listeners array
|
||||
* @param observer - observer object
|
||||
*/
|
||||
this.removeListener = function(name, func, allListeners, observer) {
|
||||
var listeners;
|
||||
|
||||
if (observer)
|
||||
observer.removeListener(name, func);
|
||||
|
||||
listeners = allListeners[name];
|
||||
|
||||
if (listeners)
|
||||
listeners = listeners.map(function(listener) {
|
||||
if (listener === func)
|
||||
listener = null;
|
||||
|
||||
return listener;
|
||||
});
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Функция ищет в имени файла расширение
|
||||
* и если находит возвращает true
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue