javascript - Node.js 中可能存在事件错误?

标签 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 上测试]

最佳答案

在 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/

相关文章:

javascript - 如何将 'InnertText'更改为没有ID的span?

javascript - 动画超出了其设定的目标?

javascript - 检测元素是否应用了 CSS 动画的最佳方法是什么

javascript - 从 Nodejs mssql 结果解析 JSON 结果

node.js - 如何显示 DynamoDB 表的内容

javascript - 如何使用 async 或 Promise Node/Express

javascript - Node JS - 在不知道键的情况下通过键合并对象

javascript 高度数学重新计算每个页面更改

javascript - 修复异步 javascript 回调

node.js - 在redis中有效地缓存搜索结果