我必须连续创建许多RabbitMQ通道,因此我试图在一个返回值将是通道的函数中参数化它们的创建。该函数在连接函数的回调回调中声明。
var otaChannel = null;
amqp.connect(amqp_url, (err0, conn) => {
if(err0) {
throw(err0);
}
function getConsumerChannel(channelname) {
conn.createChannel((err1, ch) => {
if(err1) {
throw(err1);
}
ch.assertQueue(channelname, '', (err, q) => {
console.log(' [*] Created ' + q.queue + '.');
return ch;
});
});
}
otaChannel = getConsumerChannel(otaQName);
});
如果在assertQueue函数中执行“ console.log(ch)”,则会看到该通道的详细信息。但是,代码最后一行中的otaChannel始终为null。我已经尝试了许多发布的代码的变体,但是无法将通道分配给otaChannel。我要去哪里错了?