电子计时功能

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