我想我遇到了一种非常奇怪的错误。 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 上测试]
最佳答案
在 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
>
关于javascript - Node.js 中可能存在事件错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7270995/