Страницы

Поиск по вопросам

вторник, 24 декабря 2019 г.

Почему не увеличивается длительность исполнения функции?

#settimeout #javascript #замыкания #циклы #функции


for (j=1;j<=5;j ++)
{
    (function(i){
        setTimeout(function(){console.log(i)}, j*500)
    })(j)
}

Интересует конкретно данный кусок кода, почему задержка не увеличивается на 500 мс?
Был бы благодарен если кто нибудь описал принцип работы функции.    


Ответы

Ответ 1



Вы по сути одновременно запускаете пять функций, т.е. ваш код идентичен: (function(i){setTimeout(function(){console.log(i)}, 1*500)})(1) (function(i){setTimeout(function(){console.log(i)}, 2*500)})(2) (function(i){setTimeout(function(){console.log(i)}, 3*500)})(3) (function(i){setTimeout(function(){console.log(i)}, 4*500)})(4) (function(i){setTimeout(function(){console.log(i)}, 5*500)})(5) Что приводит к эффекту вывода пяти сообщений в консоль с интервалом 500 миллисекунд.

Комментариев нет:

Отправить комментарий