複数のタイマーを一時停止して次々と実行する必要があります。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つのタイマーが実行されます。
ループなどでこれを行う他の方法はありますか?