Node.js amqplib何时closures连接

我正在使用amqplib在我的node.js服务器中传输消息。 我看到一个来自RabbitMQ官方网站的例子:

var amqp = require('amqplib/callback_api'); amqp.connect('amqp://localhost', function(err, conn) { conn.createChannel(function(err, ch) { var q = 'hello'; var msg = 'Hello World!'; ch.assertQueue(q, {durable: false}); // Note: on Node 6 Buffer.from(msg) should be used ch.sendToQueue(q, new Buffer(msg)); console.log(" [x] Sent %s", msg); }); setTimeout(function() { conn.close(); process.exit(0) }, 500); }); 

在这种情况下,连接在超时function中closures。 我不认为这是一个可持续的方式来做到这一点。 但是, ch.sendToQueue没有callback函数,允许我在发送消息后closures连接。 closures连接有什么好处?