如何在while循环中添加延迟。JavaScript 函数下降() { isFalling=true; while(isFalling==true) { 如果(y
我曾尝试在整个循环、if语句和y++中添加setTimeout(function()。我不知道我做错了什么。每当我添加这些函数时,一旦调用下降函数,页面就会失去响应。我很清楚这可能是一个重复的问题,但重复的问题没有帮助。如何在while循环中添加延迟。JavaScript 函数下降() { isFalling=true; while(isFalling==true) { 如果(y,javascript,Javascript,我曾尝试在整个循环、if语句和y++中添加setTimeout(function()。我不知道我做错了什么。每当我添加这些函数时,一旦调用下降函数,页面就会失去响应。我很清楚这可能是一个重复的问题,但重复的问题没有帮助。 {},100)您可以这样做: function falling() { isFalling = true; while (isFalling == true) {
{},100)您可以这样做:
function falling()
{
isFalling = true;
while (isFalling == true)
{
if (y < 120) {
y++;
}
else if (y == 120) {
isFalling = false;
}
}
}
我将使用window.setInterval()来代替,因为您希望它重复到某个数字 工作许可证:
如果调用falling()的目的是临时将全局变量的值设置为true(根据当前代码的建议),那么这应该可以实现
var isFalling=false;
功能下降(下降持续时间){
isFalling=true;
控制台日志(“正在下降”);
setTimeout(函数(){
isFalling=false;
控制台日志(“登陆”);
},下降持续时间| | 1000);
}
下降()代码>是否有全局变量y?为什么首先需要延迟?因为没有提供足够的细节,所以不清楚你想要完成什么。虽然问题不是100%清楚,但似乎目的是管理一段时间,在这段时间里,下降是真实的。如果是这样,那么这个答案需要多一点代码。@JonSG,如果这是真的,那么这个问题确实需要将其指定为约束条件。无论如何,我知道需要向代码中添加什么来维护这种全局状态。
function falling(y) {
if (y < 120) {
setTimeout(falling.bind(this, y + 1), 100); // specify your delay.
}
}
falling(0);
function falling(y) {
isFalling = y < 120;
if (isFalling) {
setTimeout(falling.bind(this, y + 1), 100); // specify your delay.
}
}
function falling()
{
var isFalling = true;
var y=0;
myInterval = window.setInterval(function() {
y++;
console.log(y);
if (y== 120) {
clearInterval(myInterval);
}
}, 100)
}
falling();