我有此代码:
app.post('/pst', function(req, res) {
var url = req.body.convo;
res.render('processing.ejs');
myAsyncFunction(url).then(result => {
console.log('TAKE A LOOK AT THIS!');
//take result and send it as text to the client code goes here
}).catch(err => {
console.log(err);
res.render('error.ejs');
})
});
用户POST时,将运行长时间运行的异步函数。完成后,它将数据作为文本文件提供给客户端。
这在Localhost中效果很好,但是当我上传到Heroku时出现错误。
由于该功能很长,因此需要花费一些时间进行响应。但是Heroku会在30秒后触发H12 error
(超时错误)
没有回应通过。
jfriend00用户向我建议,我可以定期执行res.write("")
,向响应中写入一个字节以保持
连接仍然存在。
我要问的是这种代码结构。.是否可以每隔25秒执行一次res.write("")
,而
异步函数正在运行? 如果是,我如何构建代码来实现这一目标?