#javascript #циклы
var x = false; var c = false; setTimeout(function() {x = true; alert('from timeset ' + x);}, 1000); while(!c) { c = x; }
Ответы
Ответ 1
В JS нет многопоточности, и цикл не передаст управление следующему ивенту пока не выполнится. Более подробнее про eventloop можно посмотреть тут.Ответ 2
JS работает всегда в одном потоке, если позволяет функциональность, асинхронно. Поочередно из очереди событий берутся задачи и выполняются, в данном случае произойдет так, что задача while т.е цикл, будет выполнятся бесконечно, и JS не когда не дойдет до следующего элемента в очереди, а именно нашей callback функции, где меняются значение переменных.
Комментариев нет:
Отправить комментарий