【发布时间】:2021-03-19 03:22:47
【问题描述】:
我在“nodejs”中有一个 API,我试图在我的一些路由中插入超时。我尝试使用res.setTimeout 执行此操作,但问题是:这样(应该)立即关闭连接。我想在结束连接之前发送响应,有什么方法可以实现吗?
【问题讨论】:
我在“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。
【讨论】: