Я использую Svelte. Для динамической диаграммы в реальном времени я получаю данные из источника данных, который постоянно делает новые данные доступными. Поэтому я хочу получить последние данные, затем, как только они вернется, снова получите последние данные и т. Д. Дольше, пока пользователь не решит остановить цикл. Вызов источника данных, реализованный в базе данных с помощью PL/SQL, включает в себя сон, чтобы разместить вызовы на срок не менее 5 секунд. Но фронт -энды JavaScript просто хочет забрать этот вызов базы данных. Макет: < /p>
Код: Выделить всё
let loopTrigger=1
async function getData() {
await getNewData(somethingElse) // call database here, which takes several seconds
loopTrigger=Date.now()
}
$: loopTrigger && somethingElse && getData()
Я инициирую, установив что -то, что , а затем из -за установки Looptrigger в функции Async, он становится бесконечным циклом реакции, по проекту. Это не сжигание ЦП, потому что вызов базы данных занимает много времени и обрабатывает сон, чтобы разместить вызовы. Но в JavaScript стек вызовов становится все глубже и глубже. В конце концов, это пойдет на то, что пойдет на шум. Я хочу только один цикл, перезапущенный при изменении чего -либо , и повторяется, когда вызов базы данных завершается, пока пользователь не отменит его. Как правильно это сделать?
Подробнее здесь:
https://stackoverflow.com/questions/796 ... r-call-sta