我正在尝试使用javascript ...
检查变量是否等于1
myvalue = 1;
function check() {
if (myvalue == 1) {
return setTimeout(check, 1000);
}
alert("Value Is Set");
}
check();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
我打算在设置变量时添加延迟但是现在为什么这个简单的版本不起作用?
答案 0 :(得分:1)
使用setTimeout(check, 1000);
只调用一次该函数。那不是你想要的。
你要找的是setInterval
,它每 n 毫秒执行一个函数。
请查看以下示例,该示例使用setInterval
等待值为1,然后清除setInterval
实例。
运行以下代码段时等待4秒:
// First - set the value to 0
myvalue = 0;
// This variable will hold the setInterval's instance, so we can clear it later on
var interval;
function check() {
if (myvalue == 1) {
alert("Value Is Set");
// We don't need to interval the check function anymore,
// clearInterval will stop its periodical execution.
clearInterval(interval);
}
}
// Create an instance of the check function interval
interval = setInterval(check, 1000);
// Update the value to 1 after 4 seconds
setTimeout(function() { myvalue = 1 }, 4000);