在超时结束连接之前发送响应(nodejs)

Send a response before timeout ends connection (nodejs)

我在“nodejs”中有一个 API,我正试图在我的一些路由中插入超时。我尝试使用 res.setTimeout 来做到这一点,但问题是:那样(它应该)会立即关闭连接。我想在结束连接之前发送一个响应,有什么办法可以实现吗?

你想等一段时间再做任务吗?我会尝试利用 setTimeout 函数 -> https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Timeouts_and_intervals

节点 10+

// some code
// ...

// wait five seconds before moving foward
await new Promise(resolve => {
  setTimeout(()=>{
    resolve()
  },5000)
})

// move along...

前节点 10

// some code
// ...

// wait five seconds before moving foward
setTimeout(() => {
  // move along in your code in this callback block
}, 5000)


超时就是超时。一个不当行为。这不应该发生。它将向用户发回 504 应答。也许您应该尝试将您的前端 http 服务器(例如您的 nginx)配置为具有相同的超时,如果它向最终用户发回 500 而不是 504。