0

複数のタイマーを一時停止して次々と実行する必要があります。timer の入力は、時間のセットを含む配列から取得されます。reduce メソッドで何かをしました。しかし、reduce メソッドを早期にブレークできませんでした。

const times = [5, 4, 5];
function countDown(secs) {
        console.log(secs);
        if (secs === 1) {
            clearTimeout(timer);
            return timer;
        }
        secs--;
        var timer = setTimeout(() => countDown(secs), 1000);
}

times.reduce((totalDelay, time) => {
    setTimeout(() => {
        countDown(delay);
    }, 1000 * totalDelay);
    const delay = parseInt(time);
    totalDelay += delay;
    return totalDelay;
}, 0);

ブール値で一時停止して再生しようとしました。タイマーはそのブール変数によって一時停止されますが、再開すると、削減のために2つのタイマーが実行されます。

ループなどでこれを行う他の方法はありますか?

4

1 に答える 1