Node.js amqplib节点使用rabbitmq

Node.js amqplib节点使用rabbitmq,node.js,rabbitmq,node-amqp,Node.js,Rabbitmq,Node Amqp,这就是我在rabbit中使用队列的方式,我想知道为什么这个承诺仍然挂起并且没有结果。我试图击中一个端点,称之为这个承诺,并期望它返回刚刚好,以确保它给我一个200好的状态。现在,它的行为似乎不知何故没有从这项服务中得到任何回报,我想知道我做错了什么。谢谢 return new Promise((resolve,reject) => { try{ rabbit.then(conn => {

这就是我在rabbit中使用队列的方式,我想知道为什么这个承诺仍然挂起并且没有结果。我试图击中一个端点,称之为这个承诺,并期望它返回刚刚好,以确保它给我一个200好的状态。现在,它的行为似乎不知何故没有从这项服务中得到任何回报,我想知道我做错了什么。谢谢

return new Promise((resolve,reject) => {
            try{    
                rabbit.then(conn => {               
                  return conn.createChannel();
                })
                .then(ch => {
                  let shit = ch.assertQueue(USER_LOG_QUEUE)
                  .then(ok => { 
                    if(ok.messageCount > 0){
                        return ch.consume(USER_LOG_QUEUE, function(msg) {
                            if (msg !== null) {                             
                                ch.ack(msg);
                                writeToFile(msg.content.toString())
                                .then(rs => {                                   
                                    console.log(rs);
                                })
                                .catch(err => reject(err));                             
                            }
                            console.log('finished');
                            ch.close();
                            resolve(ok);
                        })                      
                    }else{              
                        console.log('empty list : finished');                                                               
                        ch.close();
                        resolve(ok);
                    }                   
                })
                .then(ok => {
                    console.log('empty list2 : finished');              
                    resolve(ok)
                })
                .catch(err => reject(err));             
            }catch(err){                
                reject(err);
            }
        });