Зачем "закрывать" событие, когда что-то идет не так с node-amqp?

(Я использую сервер node-amqp и rabbitmq.)

Я пытаюсь угадать, почему у меня закрытое событие, если что-то идет не так. Например, если я пытаюсь открыть соединение с очередью (с неверными параметрами), я получаю сообщение об ошибке. Что это прекрасно, хорошо.

Но после любой ошибки я получу также закрытое соединение (в этом случае, может быть, потому что закроет сбойный сокет в очередь). И после этого, автоподключение, и я получаю (начальное) событие готовности.

Эта проблема:

connection.on('ready', function() {
 do_a_lot_of_things

}).on(error, function(error){
 solve_the_problem
});

если что-то пойдет не так, я получаю сообщение об ошибке, но затем "готово" событие, и оно будет повторно do_a_lot_of_things. Мой подход неверен?

с уважением

1 ответ

Ты можешь использовать connection.once('ready', function () { … }) (см. документацию), который будет выполнять обработчик только при первом событии.

Другие вопросы по тегам