我注意到setInterval()函数实际上在间隔开始时运行(如在,接受值),然后等待并在间隔结束时返回结果。 如果值在中间区间发生变化,它仍然会像在开始时那样执行。这导致我的滑块出现不需要的行为。 有没有办法强制setInterval()在间隔的最后?最好没有jQuery。
编辑:当我将我的代码转换为此处发布时,问题就解决了。原来这与我的问题没什么关系。对不起,我一定会在下次发布代码。谢谢你们的答复! :)希望他们将来帮助某人,因为我无论如何都找不到这样的问题。答案 0 :(得分:0)
是。递归使用setTimeout,这通常是更好的主意。
function doSomething() {
setTimeout(function () {
console.log('something')
doSomething()
}, 2000)
}
console.log('start')
doSomething()

答案 1 :(得分:0)
您应该发布一些代码。我不完全确定这是不是你的问题,但如果你看看这个:
setInterval(() => {
var message = 'ok';
console.log(message);
}, 1000);
message = 'not ok';
'消息' setInterval中定义的变量的作用域是传递给setInterval的函数。因此,当我尝试在该范围之外更改变量时,它将无法工作。我实际上不小心在窗口对象上创建了一个新变量。
但是,如果我这样做:
var message = 'ok';
setInterval(() => {
console.log(message);
}, 1000);
message = 'not ok';
'消息'变量已成功更改,setInterval将使用该更改调用变量。
答案 2 :(得分:0)
您可以在window
对象上绑定所需的变量。
window.myVariable = 'Important String';
setInterval(function() {
doSomethingWith(window.myVariable);
}, 2000);
// Variable is changed
window.myVariable = 'Less Important String';