Node.js предотвращают наложение асинхронных функций в setInterval

0

У меня есть заданный интервал, выполняющий SQL-запрос быстро. Запрос в среднем займет.0003 секунды. Однако существует вероятность того, что в редких случаях результаты запроса могут превышать 100 мс.

setInterval(function(){
Data = sql.Query(SqlData);
},1000/30);

Я хочу, чтобы у нас было не более одного sql.Query(SqlData), выполняемого за один раз.

  • 1
    В этом случае вы должны использовать setTimeout вместо setInterval . Вы создадите таймаут, как только запрос завершится.
  • 0
    если я вкладываю setTimeout, что мешает другим функциям в пределах установленного интервала выполнить?
Показать ещё 2 комментария
Теги:

1 ответ

2

вы можете просто снова запустить запрос в обратном вызове.

query();

function query(){
    Data = sql.Query(SqlData, function(){
        query();
    });
}

поэтому вы можете быть уверены, что за один раз запускается только один запрос

  • 0
    Ой, подождите ... я вижу, что вы сделали ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню