回调的返回值为null。如何构造代码以正确获取返回值?

时间:2019-04-27 15:46:25

标签: javascript node.js

我必须连续创建许多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。我要去哪里错了?

0 个答案:

没有答案