Как сделать паузу в цикле перед выполнением операции? [дубликат]

349
27 января 2017, 08:00

На данный вопрос уже ответили:

  • Почему асинхронная функция внутри цикла выполняет последнюю итерацию много раз? 1 ответ

Нужно чтобы перед выполнением консоль лог делалась пауза в 1 секунду, вот пара примеров кода и ни один не работает:

var last = "gdfhdjgh";
function lastinjs(last) {
    for (i=0; i < last.length; i++) {
        var intervall = setInterval;
        setInterval(console.log(last[i]), 1000);
        if (i >= 0) {
            clearInterval(intervall)
        }
    }
}
setTimeout('lastinjs(last)', 1000);

а это второй

var last = "gdfhdjgh";
function lastinjs(last) {
    for (i=0; i < last.length; i++) {
        setTimeout(console.log(last[i]), 1000);
    }
}
setTimeout('lastinjs(last)', 1000);
Answer 1

Оберните console.log в функцию:

setInterval(function(){console.log(last[i])}, 1000);

или текстом, как вы уже делали:

setInterval("console.log(last[i])", 1000);

Однако, использование строк не рекомендуется, так как они могут вызвать проблемы при минимизации кода, и, вообще, сама возможность использовать строку сохраняется лишь для совместимости.

Здесь тоже не верно:

var intervall = setInterval;
setInterval(console.log(last[i]), 1000);

нужно получить id нового интервала:

var intervall =  setInterval(console.log(last[i]), 1000);
READ ALSO
Поиск уникальных объектов в массиве [требует правки]

Поиск уникальных объектов в массиве [требует правки]

Как найти уникальные объекты в таком массиве, допустим по a:

266
Генерация ODF с web-формы

Генерация ODF с web-формы

Стоит задача сформировать отчетность для печати, используется для разработки ПО JS и Golang (gin)Дак вот, мне надо что бы по клике в web форме отправлялись...

300
Не работают минифицированные CSS и JS через защищенный протокол

Не работают минифицированные CSS и JS через защищенный протокол

ЗдравствуйтеИспользую вот этот minify на сайте

305