Node.js 当你不';不要等待承诺';在膝关节炎中间件中的分辨率?

Node.js 当你不';不要等待承诺';在膝关节炎中间件中的分辨率?,node.js,es6-promise,koa2,Node.js,Es6 Promise,Koa2,我正在努力提高我们的一个API路由的响应时间 我们发出两个请求将消息发布到消息队列,目前我们等待网络请求 const someMiddlewareFunction = async (ctx, next) => { ... await postThingToQueue(message_payload) ... ctx.body = {...} return next() } 如果我们不关心消息是否已发送到队列,那么不等待wait调用postThing

我正在努力提高我们的一个API路由的响应时间

我们发出两个请求将消息发布到消息队列,目前我们等待网络请求

const someMiddlewareFunction = async (ctx, next) => {
    ...
    await postThingToQueue(message_payload)
    ...
    ctx.body = {...}
    return next()
}

如果我们不关心消息是否已发送到队列,那么不等待
wait
调用
postThingToQueue
函数的缺点是什么?(我们可以说,我们真的不在乎,正确的错误处理也得到了解决)

这完全取决于您希望它如何工作。如果您希望中间件完成,并且Express在不等待异步操作完成的情况下继续处理该特定请求的其他请求处理程序,并且您有其他的错误处理来解决问题,那么就没有任何缺点。这有时被称为异步操作,即“触发并忘记”。这不是通常的做事方式,但在某些情况下确实是合适的


如果您有一个正确的错误处理方案,并且请求本身不需要等待队列操作,那么这是完全正确的。没有坏处。事实上,由于没有被排队操作阻塞,请求的处理速度可能会更快。

这是我的直觉,但我想确定一下