【发布时间】:2022-06-15 01:30:20
【问题描述】:
我有一个简单的快递功能。
app.post('/thing', ensureLoggedIn("/loginpage"), urlencodedParser, (req, res) => {
var func = req.body.func
res.redirect('/')
longRunningCalculation()
})
我想返回,然后执行 longRunningCalculation(例如,需要 5 秒)。
令人惊讶的是,这根本行不通。 Web 浏览器站点在那里等待五秒钟,然后重新加载。
如果我这样做......
app.post('/thing', ensureLoggedIn("/loginpage"), urlencodedParser, (req, res) => {
var func = req.body.func
res.redirect('/')
setTimeout(longRunningCalculation, 1100) // sloppy but WTF
})
它“有效”,但显然是废话。
我所说的“工作”是指网页确实会立即重新加载;然后 1.1 秒后,漫长的过程开始并按预期工作。
(奇怪的是,如果我做一小段时间,比如说“100”,它“不起作用”;它会再次表现出网页只重新加载一次,长时间的计算就完成了。)
解决办法是什么?
【问题讨论】: