У меня есть этот код:
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 вызывает H12 error
, ошибку тайм-аута, через 30 секунд
без прохождения ответа.
Это было предложено мне пользователем jfriend00, я могу периодически делать res.write("")
, чтобы записать байт в ответ, чтобы поддерживать
соединение живым.
Что я спрашиваю, так это в этой структуре кода ... Можно ли сделать res.write("")
каждый, дляНапример, 25 секунд, пока
работает асинхронная функция?Если да, то как мне структурировать мой код для достижения этой цели?