我是否可以在触发事件时执行的回调中访问事件的名称?
考虑以下示例,其中我对两个不同的事件具有相同的回调(handleEvent
)。现在我想基于触发其执行的事件在回调中添加条件语句。这可能吗?
obj.on('start', handleEvent);
obj.on('stop', handleEvent);
function handleEvent() {
// how can I check here if the event that triggers the execution of handleEvent is 'start' or 'stop'
}
我现在所做的是用'emit'将事件传递两次 - 这似乎工作正常,但我不喜欢写两次:
obj.emit('start', 'start', handleEvent);
答案 0 :(得分:0)
var EventEmitter = require('eventemitter2').EventEmitter2
var emitter = new EventEmitter
emitter.on('test', onEvent)
emitter.emit('test')
function onEvent() {
console.log(this.event)
}
答案 1 :(得分:0)
你可以这样做:
obj.on('start', handleEvent.bind({ event: 'start' }));
obj.on('stop', handleEvent.bind({ event: 'stop' }));
function handleEvent() {
if(this.event == 'start') { ///
}