电子计时功能
Timing functions in electron
我是 java 脚本和电子的新手。我正在尝试编写一个具有开始按钮和停止按钮的应用程序。单击开始按钮时,它应该启动一个计时器,该计时器每隔一段时间执行一个函数,直到单击停止按钮。在网上稍作研究后,我发现 SetInterval() 函数应该可以做到这一点。这是我的代码:
let timeoutObj;
const startTimer = () => {
let val = document.getElementById("time-input").value;
document.getElementById("time-input").disabled = true;
document.getElementById("start-btn").disabled = true;
document.getElementById("stop-btn").disabled = false;
timeoutObj = setInterval(execution(), val * 10);
}
const stopTimer = () => {
let val = document.getElementById("time-input").value;
document.getElementById("time-input").disabled = false;
document.getElementById("start-btn").disabled = false;
document.getElementById("stop-btn").disabled = true;
stopExecution();
}
const execution = () => {
console.log('exetuted');
}
const stopExecution = () => {
console.log('stopping');
clearInterval(timeoutObj);
}
它不起作用,它记录“开始”一次,再也不会。 startTimer() 和 stopTimer() 是按钮的 onclick 函数。有人可以向我解释为什么它不起作用吗?
顺便说一句:这个值真的很低,它应该每 3 秒记录一次“开始”。
javascripts setInterval 函数需要函数回调作为参数,但是您传递了 execution()
有效执行函数并传递了它的 return 值而不是回调。
你应该这样做
setInterval(execution, val*10) // pass execution callback, instead of calling it
我是 java 脚本和电子的新手。我正在尝试编写一个具有开始按钮和停止按钮的应用程序。单击开始按钮时,它应该启动一个计时器,该计时器每隔一段时间执行一个函数,直到单击停止按钮。在网上稍作研究后,我发现 SetInterval() 函数应该可以做到这一点。这是我的代码:
let timeoutObj;
const startTimer = () => {
let val = document.getElementById("time-input").value;
document.getElementById("time-input").disabled = true;
document.getElementById("start-btn").disabled = true;
document.getElementById("stop-btn").disabled = false;
timeoutObj = setInterval(execution(), val * 10);
}
const stopTimer = () => {
let val = document.getElementById("time-input").value;
document.getElementById("time-input").disabled = false;
document.getElementById("start-btn").disabled = false;
document.getElementById("stop-btn").disabled = true;
stopExecution();
}
const execution = () => {
console.log('exetuted');
}
const stopExecution = () => {
console.log('stopping');
clearInterval(timeoutObj);
}
它不起作用,它记录“开始”一次,再也不会。 startTimer() 和 stopTimer() 是按钮的 onclick 函数。有人可以向我解释为什么它不起作用吗? 顺便说一句:这个值真的很低,它应该每 3 秒记录一次“开始”。
javascripts setInterval 函数需要函数回调作为参数,但是您传递了 execution()
有效执行函数并传递了它的 return 值而不是回调。
你应该这样做
setInterval(execution, val*10) // pass execution callback, instead of calling it