有没有办法检查 Node.js 中的对象是否已存在侦听器?我想实现以下场景:
我想以这样的方式优化侦听器的添加:如果我们尝试添加现有侦听器,则不会添加新侦听器。Node 文档说“不会检查侦听器是否已添加。传递相同的 eventName 和侦听器组合的多个调用将导致侦听器被多次添加和调用。 ”
有办法解决吗?
[编辑]-添加一些示例代码
connpool.getConnection(function(err, connection) {
var querystr = "Some valid SQL query";
connection.execute(querystr, data, function(err, rows) {
if (err) {
console.error(err);
}
connection.on('error', function(err){onErr(err,connection);});
do some stuff
cleanup(connection);
});
})
var onErr = function(err, connection) {
console.error({"Error message"});
connection.release();
cleanup(connection);
};
var cleanup = function(conn) {
conn.removeListener('error',onErr);
};
Run Code Online (Sandbox Code Playgroud)
Connection将包含一个数据库连接,它来自外部包。在语句connection.on('error', function(err){onErr(err,connection);}); 我正在使用匿名函数,因为我需要向清理方法传递一个额外的参数。在清理过程中,我没有获得该函数的处理程序,因为我使用的是匿名函数。