Зачем "закрывать" событие, когда что-то идет не так с 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 () { … })
(см. документацию), который будет выполнять обработчик только при первом событии.