gpt4 book ai didi

javascript - 在第一个计时器完成后实现第二个计时器的倒计时

转载 作者:行者123 更新时间:2023-12-03 05:13:16 25 4
gpt4 key购买 nike

我是一名编程初学者,正在尝试创建番茄钟项目,并且希望在 session 倒计时完成后触发休息倒计时。就像图片上一样。

enter image description here

定时器是通过输入字段设置的,根据想法,中断定时器应该倒计时设定值,实际上它倒计时 session 的值。

<小时/>

Javascript代码

function sessionTimer(seconds) {
clearInterval(countdown);
const t = new Date();
const end = t.getTime() + seconds * 1000;
displayTimerLeftSession(seconds);
console.log({
t,
end
});

countdown = setInterval(() => {
if (!isPaused) {
const remainSeconds = Math.round((end - t.getTime()) / 1000);
if (remainSeconds < 0) {
clearInterval(countdown);
breakTimer(seconds);
return;
}
displayTimerLeftSession(remainSeconds);
t.setSeconds(t.getSeconds() + 1);
}
}, 1000);
t.setSeconds(t.getSeconds() + 1) - 1;
}
<小时/>

我知道问题出在哪里了。因为我在 sessionTimer 函数中调用 breakTimer ,但是我不知道如何在 session 后使中断计时器倒计时。我的代码很草率,无论如何都需要重构。请不要严厉地评判我。如果想看代码请引用the Project

最佳答案

希望我正确地解释了你的问题。您可以做的一件事是在计时器完成后触发回调。经过 n 秒后,您清除间隔并触发回调,表明计时器已完成。

function timer(seconds, callback) {
var countDown = function() {
console.log(seconds);
if (seconds-- == 0) {
clearInterval(time);
callback()
}
};

countDown();
var time = setInterval(countDown, 1000);
}

console.log('Starting session timer...');
timer(5, function() {
console.log('Session timer complete. Starting break timer...');
timer(5, function() {
console.log('Break timer complete.');
});
});

关于javascript - 在第一个计时器完成后实现第二个计时器的倒计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41713136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com