Задать вопрос

Почему не работает setTimeout в цикле for?

Почему выводит сразу число 5 в консоль? Я думал что пудет с интервалом в 1 секунду увеличивать счетчик.
for(var i=1; i<=5; i++) {
        setTimeout(function(){
          console.log(i);
        }, 1000);
      }
  • Вопрос задан
  • 9691 просмотр
Подписаться 5 Оценить Комментировать
Решения вопроса 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
var f = function(i){
	i = i | 0;
	i++;
	console.log(i);
	if(i<5)
		setTimeout(f.bind(null,i),1000);	
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Eugene_Sh
@Eugene_Sh
for (var i = 1; i <= 5; i++) {
    (function(i) {
        setTimeout(function(){
          console.log(i);
        }, 1000);
    })(i);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы