【发布时间】:2013-05-02 11:16:46
【问题描述】:
我有一个生成许多事件的 socket.io 服务器,我想捕获所有事件并打印类似的消息。现在,我这样做:
for (var event in {eventA: 1, eventB: 1, eventC: 1}) {
this.translationSocket.on(event, function(result) {
console.log("Server sent an event of type "+event);
});
}
当服务器发送 eventA、eventB 和 eventC 时,我看到了这个:
Server sent an event of type eventC
Server sent an event of type eventC
Server sent an event of type eventC
即我的程序捕获所有事件,但始终显示 eventC 的类型...
我尝试了以下变体:
- 去掉“for”中“event”前的“var”:“for (event ...”
- 添加语句'var msg = "服务器发送了一个类型为"+event;'的事件在“on”语句之前或在“console.log”语句之前,然后是“console.log(msg)”。
这些变化都不起作用...
我该怎么办?
【问题讨论】:
标签: javascript asynchronous scope