【发布时间】:2023-06-11 21:02:01
【问题描述】:
我有一个网络服务器,可根据请求拨打电话,等待 3 秒,然后检查该电话是否仍在进行中。我使用setTimeout 来集成它,但这会阻止与 Web 服务器的所有其他连接,直到超时完成。
// example get request
app.get("/", function(req, res) {
// take an action
example.makeCall(function() {
setTimeout(function() {
// check the action
example.checkCall(function() {
res.status(200)
})
}, 3000)
})
})
是否有其他方法可以在不阻塞所有其他传入请求的情况下为请求添加超时?
【问题讨论】:
-
不。 setTimeout 没有阻塞。
-
它不应该阻塞网络服务器。是什么让你这么认为?
-
正是你如何实现它使它“看起来”被阻止了。请改用 setInterval,如果您获得所需的状态,请继续。
标签: javascript http express web timeout