Repository navigation
Expand file tree
/
Copy pathglobal.js
More file actions
77 lines (69 loc) · 1.5 KB
/
Copy pathglobal.js
File metadata and controls
77 lines (69 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
const globalParam = {};
const dict = {};
class GlobalEvent {
constructor(args) {
this.id = 1;
this.events = {};
this.idfrom = {};
}
trigger(name, param) {
const eventList = this.events[name];
if (eventList) {
for (const e in eventList) {
eventList[e].call(null, param);
}
}
}
haslistener(name) {
if (this.events[name] && Object.keys(this.events[name]).length) {
return true;
}
return false;
}
addlistener(name, func) {
const id = this.id;
if (!this.events[name]) this.events[name] = {};
this.events[name][id] = func;
this.idfrom[id] = name;
this.id++;
return id;
}
removelistener(id) {
if (this.idfrom[id]) {
delete this.events[this.idfrom[id]][id];
delete this.idfrom[id]
}
}
}
const globalEvent = new GlobalEvent();
const G = {
getDict(name) {
if (name == undefined) return name;
return dict[name];
},
saveDict(name, value) {
if (name == undefined) return false;
dict[name] = value;
},
get(name) {
if (name == undefined) return name;
return globalParam[name];
},
set(name, value) {
if (name == undefined) return false;
globalParam[name] = value;
},
trigger(name, param) {
globalEvent.trigger(name, param);
},
addlistener(name, func) {
return globalEvent.addlistener(name, func);
},
haslistener(name) {
return globalEvent.haslistener(name);
},
removelistener(id) {
globalEvent.removelistener(id);
}
};
module.exports = G;