rabbitmq Nodejs:兔子等待消费

sigwle7e  于 2022-12-13  发布在  RabbitMQ
关注(0)|答案(1)|浏览(167)

这是我的代码:

// send to queue
channel.sendToQueue("test", data);

发布test后,在另一台服务器上,我们会收到来自该服务器的响应
所以,我想等待它并得到与等待:

await channel.consume("response", async (msg) => {
  ....
})

但在这里等待不是工作
我怎么能等着消费呢?
我的完整代码:

channel.sendToQueue("test", data);
await channel.consume("response", async (msg) => {
  ....
})
// continue code
khbbv19g

khbbv19g1#

构造一个promise并将其封装在consume函数调用中。这是一个回调函数,因此我们可以调用resolve来使外部promise得到实际解析。
channel.consume没有返回可等待的响应,因此我们无法执行await

await new Promise((resolve, reject) => {
  channel.consume("response", (msg) => {
    resolve(msg);
  })
})

相关问题