这就是我在rabbit中使用队列的方式,我想知道为什么这个promise仍然挂起并且没有返回结果。我正在尝试访问一个调用此承诺的端点,并期望它返回正常,以确保它给我一个 200 OK 状态。现在它表现得好像它没有从这项服务中得到任何回报,我想知道我做错了什么。谢谢
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);
}
});