const chain = (n) => Array(n)
.fill(1)
.map(() => Math.floor(Math.random() * 9) + 1)
.map((v, i, a) => v + (a[i + 1] ?? (Math.floor(Math.random() * 9) + 1)) * 10);
chain(10); // [ 75, 87, 48, 54, 75, 27, 92, 69, 56, 25 ]
Таймер выполняется в конце работы цикла?Нет. Он инициируется в цикле, а каллбэк ставит в очередь выполнения через секунду после инициации.
Знаю что нужно использовать async awaitasync/await не рекомендуется использовать в цикле. Лучше переписать функцию с использованием setInterval.
function lightWindow() {
const numLight = [1, 3, 5, 7, 11];
const houseLight = [3, 5, 11];
const lights = numLight.filter((el) => houseLight.includes(el));
if (lights.length === 0) {
return;
}
let idx = 0;
const timer = setInterval(
() => {
console.log(lights[idx]);
idx += 1;
if (idx >= lights.length) {
clearInterval(timer);
}
},
1000,
);
}
lightWindow();