Node.js中可能发生的事件错误?

时间:2011-09-01 13:26:33

标签: javascript node.js

我想我一直在遭受一个非常奇怪的错误。 EventEmitter可能会出现系统性问题。自从我开始使用once函数以来,事情似乎已经过时了。

以下控制台输出行演示了正在发生的事情:

var EventEmitter = require('events').EventEmitter;
a = new EventEmitter();
a.on("bla", function() { console.log("perm");});
a.once("bla", function() { console.log("this is temp"); });
a.emit('bla');

您可能希望调用这两个事件,但在我的控制台上输出为:

> a.emit("bla")
perm
perm
true

发生了什么事?

我也尝试在脚本中使用代码,这似乎有效,但我感觉once函数在某种程度上导致了我服务器上的奇怪故障。

有没有遇到过这个?

[测试版本0.5.1和0.5.3]

1 个答案:

答案 0 :(得分:0)

在0.5.10上为我工作。我很确定你输入的内容不是你发布的内容 - 第二个“烫发”来自哪里?再试一次。

$ node
> var EventEmitter = require('events').EventEmitter;
> a = new EventEmitter();
{}
> a.on("bla", function() { console.log("perm");});
{ _events: { bla: [Function] } }
> a.once("bla", function() { console.log("this is temp"); });
{ _events: { bla: [ [Function], [Object] ] } }
> a.emit('bla');
perm
this is temp
true
>