Мне нужно какое-либо решение или альтернатива для моего веб-приложения Server Sent Event. Я видел людей, использующих setInterval для SSE, и это хорошо, но у меня есть функция, для полного запуска которой требуется некоторое время. Вот ситуация, из-за которой мое веб-приложение работает некорректно.
Возьмем этот пример в качестве причины root. setTimeout будет выполняться только после 1 se c. И setInterval должен запускать эту функцию, а затем ждать 1/10 se c, а затем повторять.
setInterval( () => {
setTimeout( function () { console.log("ok")}, 1000)
}, 100)
Но всего за 1 сеанс c setInterval запускает эту функцию 10 раз.
ok
ok
ok
ok
ok
ok
....
....
Это настоящий код. Даже если я задам какие-то условия, эта функция все равно будет выполняться 3 раза. И если я установлю время setInterval равным 10 se c, тогда он будет работать нормально.
Есть ли альтернатива в javascript, которую я могу реализовать для событий, отправленных сервером.
setInterval( () => {
if ( pu[id] > 0 && pu[id]) {
connection.query(`SELECT * FROM files WHERE pack_id = ${id} ORDER BY uploaded_at DESC LIMIT ${pu[id]}`, (error, results) => {
if (error) {
console.log(error)
} else {
console.log("SEND") // printing 3 times
res.status(200).write(`data: ${JSON.stringify(results)}\n\n`)
}
pu[id] = 0
})
}
}, 10)