我正在创建番茄计时器-在第一个完成后,间隔应以不同的持续时间重复。简化的非工作示例:
var firstDuration=5;
var secondDuration=10;
var timer=setInterval(()=>{
firstDuration--
if (firstDuration<0){
clearInterval(timer) ..
//secondDuration-- dont know how to continue..
实现此类功能的最佳方法是什么?我也打算使用Date.now()而不是-。
答案 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);
}