Node.js 使用Cote强制微服务等待RabbitMQ发布消息

Node.js 使用Cote强制微服务等待RabbitMQ发布消息,node.js,promise,async-await,microservices,cote,Node.js,Promise,Async Await,Microservices,Cote,我有一个API-GATEWAY微服务来管理整个节目,其中一个服务叫做QueueService 这是API网关 const express = require('express') const bodyParser = require('body-parser') const cote = require('cote') const cors = require('cors'); const app = express() app.use(bodyParser.json()) app.use(c

我有一个API-GATEWAY微服务来管理整个节目,其中一个服务叫做QueueService

这是API网关

const express = require('express')
const bodyParser = require('body-parser')
const cote = require('cote')
const cors = require('cors');

const app = express()
app.use(bodyParser.json())
app.use(cors());


app.post('/queue-msg', async (req, res, next) => {
    let { from, to } = req.body;
    const payload = {
        from, to
    }
    const queue = await queueRequester.send({ type: 'create-queue-message', payload })
    res.status(200).send({ "message-sent": true, queue });
});
这是thq队列服务:

const cote = require('cote')
const queueProducer = require('./utils/queueProducer');
const queueName = 'pathfinderqueue';
const queueResponder = new cote.Responder({ name: 'queue responder', key: 'deliveries' })
queueResponder.on('*', req => req.type && console.log(req))

const deliveries = []
let idCounter = 0

queueResponder.on('create-queue-message', req => {

    async function makeRequest() {
        console.log('Got a message from API-GATEWAY!');
        let { payload } = req;  // get From & To
        queueProducer.publishToQueue(queueName, payload); // Publish to Rabbit
        const queue = { id: idCounter++, status: 'pending' } // Set the ID 
        deliveries.push(queue)
        return Promise.resolve(queue)
    }

    const response = makeRequest();
    return response;
})
但是,每当API网关将来自React客户端的消息发布到QueueService时,QueueService不会在
on
事件中等待,而是发回消息

"message-sent": true 
给客户

我们如何强制排队服务等待