settimeout 0



Js settimeout в цикле

Автор Ewrwe werwer задал вопрос в разделе JavaScript

setTimeout внутри цикла. Почему происходит именно так? и получил лучший ответ

Ответ от Pure function[гуру]
function(){
document.write('привет номер ' + i + '');
Это выполняется через секунду (setTimeout). Очевидно что твой цикл отрабатывает гораздо быстрее, и i становится равным 5, когда приходит время выполнения функции.
Сергей Иванов
Просветленный
(25786)
Поправка. Вернее любое создание функции внутри цикла так себя будет вести. Здесь создается анонимная функция внутри цикла.

Ответ от Ёергей Иванов[гуру]
Это jодна из многих особенностей JavaScript.
Функция в момент создания связывается не со значением переменной, а с самой переменной. Переменная одна и та же, поэтому и значение одинаковое.

Ответ от Илья Ш[гуру]
сначала весь цикл выполняется а потом уже settimeout )
попробуй так
next(0,5);
function next(i, count){
if(i < count)
{
console.log('привет номер ' + i + '');
setTimeout(next, 3000,i+1,count);
}
}

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: setTimeout внутри цикла. Почему происходит именно так?
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*