JavaScript остановить бесконечный цикл

Это узел.js.

У меня есть функция, которая может стать бесконечным циклом, если выполняются несколько условий. Ненадежные пользователи устанавливают эти условия, поэтому для целей этого вопроса предположим, что бесконечный цикл неисправим.

Тем не менее мне нужен способ остановить бесконечный цикл.

Вот пример кода того, что я пытаюсь сделать:

var infiniteloop = false;
var condition = true
function loop () {
  while (condition) {
    console.log('hi')
    if (infiniteloop) {
      condition = false
      console.log('oh last one')
    }
  }
}

loop()

Итак, несколько вопросов, основанных на том, что я пытаюсь сделать.

  1. Если для переменной infiniteloopустановлено значение true, цикл остановится, верно?
  2. Как обнаружить бесконечный цикл? Что-то, что проверяет каждые 3 секунды, было бы хорошо.
  3. Переменная infiniteloopне может быть изменена во время выполнения цикла, если она относится к тому же процессу. Мне нужно сохранить переменную в другом процессе?
  4. Что бы ни обнаруживало бесконечный цикл, оно должно жить в другом процессе? В идеале тот же процесс был бы хорош, но что работает?

Спасибо за вашу помощь.

5
задан Harry 13 July 2012 в 18:41
поделиться