Показать сообщение отдельно
  #12 (permalink)  
Старый 06.09.2021, 11:14
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Сообщение от 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 будет ждать.

Последний раз редактировалось voraa, 06.09.2021 в 11:30.
Ответить с цитированием