game/src/common/jc-event.js
2019-02-21 16:18:30 +08:00

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'
}
}