Как в Джаваскрипте сделать вызов итератора по массиву через setInterval? То есть, сделать функцию, которую бы мог по таймеру дёргать setInterval, и которая при каждом вызове бы что-то делала с очередным элементом массива.
В современных языках программирования много средств для написания простого понятного выразительного кода. Сейчас попробовал на Джаваскрипте. А нихрена. Оказалось, далеко не все массивы умеют .forEach, forEach не сочетается с yield, setInterval не принимает генераторы и т. д. В итоге пришёл к синтаксису недо-Си — имитации цикла for через if с глобальными переменными:
let pause = 1000;
let length = 10;
let i = 0;
let doRoll = null;
function getNext() {
console.log(array1[i]);
i++;
if (i >= array1.length) {
clearInterval(doRoll);
doRoll = null;
}
}
function startRolling() {
if (doRoll) {
clearInterval(doRoll);
doRoll = null;
} else {
i = 0;
doRoll = setInterval(getNext, pause);
}
}
Как это записать покрасивее?


