Таймер выполняется в конце работы цикла?
Нет. Он инициируется в цикле, а каллбэк ставит в очередь выполнения через секунду после инициации.
Знаю что нужно использовать async await
async/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();