35 lines
809 B
JavaScript
35 lines
809 B
JavaScript
let events = {};
|
|
export default {
|
|
on (name, self, cb) {
|
|
let cbArr = events[name];
|
|
if (Array.isArray(cbArr)) {
|
|
cbArr.push({self, cb})
|
|
} else {
|
|
events[name] = [{self, cb}]
|
|
}
|
|
},
|
|
remove (name, self) {
|
|
let cbArr = events[name];
|
|
if (Array.isArray(cbArr)) {
|
|
events[name] = cbArr.filter(({target, cb}) => {
|
|
return target !== self
|
|
})
|
|
}
|
|
},
|
|
emit (name, data) {
|
|
let cbArr = events[name];
|
|
if (Array.isArray(cbArr)) {
|
|
cbArr.map(({target, cb}) => {
|
|
cb.call(target, data)
|
|
})
|
|
}
|
|
},
|
|
events: {
|
|
BUY_GAME_SUCCESS: 'buy-game-success',
|
|
LOGIN_FINISHED : 'login-finished',
|
|
UPDATE_RECENT_GAMES: 'update-recent-games',
|
|
UPDATE_GAME_STATUS: 'update-game-status',
|
|
NEED_UPDATE_SCORE: 'need-update-score'
|
|
}
|
|
}
|