开发者

Possible event bug in Node.js?

开发者 https://www.devze.com 2023-04-01 23:16 出处:网络
I think I\'ve been suffering from a very strange bug. There might be something systematically broken with EventEmitter. Ever since I started using the once function things seem off.

I think I've been suffering from a very strange bug. There might be something systematically broken with EventEmitter. Ever since I started using the once function things seem off.

The following lines of console output demonstrate what's happening:

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');

You would expect both events to be called, but on my console the output is:

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

What's going on??

I've also tried using the code in a script and that seemed to work but I'm getting the 开发者_如何学Pythonfeeling that the once function is somehow responsible for the weird glitches on my server.

Anyone ever encountered this?

[Tested on versions 0.5.1 and 0.5.3]


Works for me on 0.5.10. I'm pretty sure you typed something else than what you posted here - where could the second "perm" come from? Try it again.

$ 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
>
0

精彩评论

暂无评论...
验证码 换一张
取 消