У меня есть экспресс-приложение, в котором есть функция генератора, которой требуется прибл. 5 минут на обработку большого количества данных. К сожалению, я не могу оптимизировать эту функцию.
Express автоматически тайм-аут через 2 минуты, и я не не хотите изменить это только для этой конкретной функции. Я подумал, что, возможно, если бы я периодически делал res.write()
вызов, правило двух минут не применялось.
Мой вопрос:
Как я могу выполнять res.write('Something')
каждые X секунд, ожидая завершения другой функции?
Я хочу, чтобы он делал что-то вроде следующего, надеюсь, вы уловили идею.
function main() {
co(function* () {
const something = yield promise(); // function that needs a lot of time
const doWhileWaiting = setTimeout(() => {
if (!something) {
// Print this while waiting for the value of something
console.log('Waiting for something ... ');
} else {
console.log(something);
clearInterval(doWhileWaiting);
}
}, 5000);
});
}