事件侦听器何时附加到 Node.js
When do event listeners get attached in Node.js?
我正在使用node-redis模块连接到redis。
因此,我正在附加一个事件侦听器来处理无法建立 redis 服务器连接的情况。
client = redis.createClient(6379, 'localhost')
client.on('error',(err)=>{
console.log('redis connection refused')
})
这是在没有侦听器的情况下发生的错误。
events.js:141
throw er; // Unhandled 'error' event
^
Error: Redis connection to localhost:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
at Object.exports._errnoException (util.js:837:11)
at exports._exceptionWithHostPort (util.js:860:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1060:14)
现在我的问题是,这个事件侦听器什么时候附加到"客户端"。在附加事件侦听器之前,是否有可能引发连接拒绝错误?
这是可能的,但当您像现在这样并排运行命令时就不行了。此代码将给出您粘贴的相同错误:
client = redis.createClient(6379, 'localhost')
setTimeout(function() {
client.on('error',(err)=>{
console.log('redis connection refused')
})
}, 3000);
这不会在代码中发生的原因是,节点线程在线程中运行时不会屈服于事件处理,因此事件处理将在附加错误处理程序后发生。
您可以全局侦听未捕获的错误事件,以捕获在附加之前发生的错误。
process.on('uncaughtException', (err) => {
console.log('whoops! there was an error');
});
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- 如何使用 node.js 比较两个 json 数组
- Node.js's Buffer.writeFloatBE in Javascript
- node.js:setInterval()正在跳过调用
- 如何处理node.js节点mongodb中的连接和查询队列
- Node.js正在更改应用程序以使用集群模块
- 如何使用Node.js最有效地解析网页
- 在openshift node js应用程序中获取请求
- 正在删除node.js中已验证的网站
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 在索引.html和应用.js [node.js] 之间共享变量
- Node.js中的JavaScript原型对象效率
- node.js请求数据事件未在CORS ajax调用中触发
- 使用node.js制作网站
- 使用node.js服务器中的evernote api获取note内容
- 有没有任何方法可以使用node-js从不同的机器打开浏览器
- 使用CI和CodeDeploy对node.js应用程序进行连续部署
- 在Node.js中上传和检索图像
- 什么's本地node.js服务器和python简单http服务器之间的区别
- 如何使用 Node JS 获取 JSON 嵌套数组值