我有 3 个每秒增加特定值的函数。
比如
var timberinterval = setInterval(function() {
timber = timber + timbermodifier;
document.getElementById('timber').innerText = Math.floor(timber);
}, 1000);
var sulphurinterval = setInterval(function() {
sulphur = sulphur + sulphurmodifier;
document.getElementById('sulphur').innerText = Math.floor(sulphur);
}, 1000);
var goldinterval = setInterval(function() {
gold = gold + goldmodifier;
document.getElementById('gold').innerText = Math.floor(gold);
}, 1000);
这些功能由 3 个独立的按钮控制。如您所见,函数每秒增加一个修饰符。
用户并不总是点击准确的秒数,他们可能会在 0.5 秒或 0.8 秒时点击,然后我的功能开始不同步。
如何延迟函数执行,使其与其他函数同步?
最佳答案
获取当前毫秒数:
var d = new Date();
var milli = d.getMilliseconds();
然后您可以在 setTimeout 函数中调用 setInterval 函数:
setTimeout(function() { setInterval(function() { ... }, 1000); }, 1000-milli)
但是,如果您需要 setInterval 的返回值(例如清除间隔),我相信您将不得不使用 promises。
关于javascript - onclick 函数在第二个执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47221774/