Сообщение от uzlprog
|
А как задать циклу for задержку?
|
Какую?
const arr0 = [0,1,2,3,4]; // Исходный массив
let a; // Будет каждую сек циклически получать значение следующего элемента
function f(arr, i = 0) {
i %= arr.length;
a = arr[i];
setTimeout(() => {() => f(arr, i+1), 1000);
}
f(arr0);
Запустили цикл с таймерами. Сначала а=0, через секунду а=1, потом а=2 и т.д.
Дальше чего вы хотите?
В какой момент времени вы хотите получить другой массив и чем его заполнять?
Только учтите, что в javascript работающий код никто не может прервать. Пока он не завершится (например какой нибудь цикл) никакое другое событие обрабатываться не будет. Даже функция заданная в таймере.
setTimeout - это не выполни функцию через заданное время (как неправильно пишут во многих учебниках). Это поставь функцию в очередь на выполнение через заданное время. А выполняться она будет, когда дойдет очередь. Если какая то задача в очереди (даже та сама, которая вызвала setTimeout будет работать слишком долго, то функция, заданная в setTimeout будет ждать.