重复计时器功能和逻辑

时间:2018-08-27 14:54:01

标签: javascript timer repeat

我正在创建番茄计时器-在第一个完成后,间隔应以不同的持续时间重复。简化的非工作示例:

var firstDuration=5;
var secondDuration=10;

var timer=setInterval(()=>{
firstDuration--
if (firstDuration<0){
clearInterval(timer) .. 
//secondDuration-- dont know how to continue..

实现此类功能的最佳方法是什么?我也打算使用Date.now()而不是-。

1 个答案:

答案 0 :(得分:0)

如果我正确地理解了要求,这将满足您的要求。它将使计时器每秒钟关闭一次,直到20分钟过去,然后每秒钟关闭一次,直到5分钟为止。届时,它将以20分钟倒计时开始。

const workDurationSeconds = 20 * 60;
const breakDurationSeconds = 5 * 60;

function startCountdown(session) {
    let duration;
    if (session === 'work') {
      duration = workDurationSeconds;
    } else {
      duration = breakDurationSeconds;
    }

    let id = setInterval(() => {
      duration--;
      if (duration <= 0) {
        clearInterval(id);
        startCountdown(session === 'work' ? 'break' : 'work');
      }
    }, 1000);
}