我需要在暂停的情况下一个接一个地运行多个计时器。定时器的输入来自包含一组时间的数组。我用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);
我尝试使用布尔值暂停和播放。计时器被该布尔变量暂停,但是当我恢复时,由于减少,两个计时器正在运行。
有没有其他方法可以用循环或其他方法来做到这一点?