为什么node-amqp出现问题时会“closures”事件?

(我正在使用node-amqp和rabbitmq服务器。)

我想猜测为什么我有一个closures事件,如果出现错误。 例如,如果我尝试打开连接到队列(具有错误的参数),我收到一个错误事件。 这是完美的。

但是,在发生任何错误之后,我将收到一个closures的连接(在这种情况下,可能是因为closures了失败的套接字到队列)。 之后,自动重新连接,我收到(初始)准备好的事件。

问题:

connection.on('ready', function() { do_a_lot_of_things }).on(error, function(error){ solve_the_problem }); 

如果出现错误,我收到错误,但是“准备就绪”事件,它将重新do_a_lot_of_things。 我的方法错了吗?

最好的祝福

你可以使用connection.once('ready', function () { … }) (见文档 ),它只会在第一个事件中执行处理程序。