У меня есть фрагмент кода с циклом while, который я хотел бы остановить с помощью setTimeout(). Но это похоже на бесконечный цикл, который никогда не запускает setTimeout(). Если я удаляю цикл while, тайм-аут срабатывает правильно. Что не так, пожалуйста?Как закончить бесконечный цикл while через setTimeout в Javascript
$(document).ready(function()
{
var i = 0, s = false;
setTimeout(function()
{
s = true;
console.log("Timeuot!!!");
console.log("s value is " + s);
}, 1000);
while(s === false)
{
console.log("this is while and s is " + s);
i++;
}
console.log("iterations: " + i);
});
@Quentin в 's' внутри SetTimeout устанавливается в глобальном масштабе. почему я ошибаюсь? –
@RoyiNamir - Функция, переданная 'setTimeout', определена внутри другой функции. Он имеет доступ к объему этой функции. Поскольку в этой области существует неглобальный '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' – Quentin
@RoyiNamir h s внутри setTimeout является одним из охватывающих областей, поэтому один объявил и определил пару строк выше. – pinturic