Node.js正在处理未设置错误事件
node.js handling unset error event
我正在研究一个发出事件的模块,其中一个是'error'事件。
例如:function A() {}
function A.prototype.start() {
var error = true;
if (error) {
this.emit('error', error);
}
return this;
}
var a = new A()
a.on('error', function(err) {})
发生的情况是,即使我正在侦听错误事件,事件也会被发出,我猜是在侦听器注册或返回this
之前。我所做的是将emit包装在setImmediate
中,例如:
function A.prototype.start() {
var error = true;
if (error) {
setImmediate(function() {
this.emit('error', error);
});
}
return this;
}
一般来说,这样可以吗?或者是否有更好的方法来处理这种情况和类似的情况。
这是个好办法。
EventEmitter
事件是纯js的,不被安排在事件循环;它们是同步发送的。
在您的情况中,在有侦听器之前触发事件,因为只有在事件被触发之后才添加侦听器。如果您"等待"事件循环的下一轮,那么通过使用setImmediate()
,您基本上可以将事件的发出推迟到添加了侦听器之后。
相关文章:
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- NodeJS错误-Can't在发送标头后设置标头
- 错误:Can't在从forEach循环发送标头后设置标头
- 未捕获的类型错误:无法设置属性'innerHTML'如果为null,则将脚本移动到正文不会;不起作用
- PhantomJS(vs nightwatch.js)设置cookie错误
- JavaScript数组值设置错误
- 为 jQuery Datatables ajax 调用设置错误处理程序
- 节点.js设置错误的内容长度.我该如何设置这个
- 客户端将多部分/表单数据请求的文件部分的内容类型设置错误
- 正在尝试部署Meteor应用程序--mup设置错误
- Jquery验证多个复选框设置错误位置
- js的attr函数设置错误的值
- Node.js正在处理未设置错误事件
- url中的Pc名会在IE中设置错误
- Redux表单提交验证不设置错误消息
- jquery设置错误的RequestUrl的问题
- VideoJs广告引用基本设置错误
- 无法推断查询字段以在插入时设置错误
- 如何为页面上的所有图像设置错误图像
- Jqgrid 设置错误 - this.p 未定义