Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中顺序执行while循环中的setTimeout?_Javascript - Fatal编程技术网

如何在JavaScript中顺序执行while循环中的setTimeout?

如何在JavaScript中顺序执行while循环中的setTimeout?,javascript,Javascript,如何使以下循环在顺序执行时变得简单 var x = 2; var y = 10; while (x<y) { x = x+2; setTimeout(function(){ y = y+1; }, 500); } var x=2; 变量y=10; 而(x使用 setTimeout在超时时执行函数一次。setInterval在超时时重复执行函数 要停止间歇,请使用 例如: var x = 2, y = 10; var loop = setInterval(functi

如何使以下循环在顺序执行时变得简单

var x = 2;
var y = 10;
while (x<y) {
  x = x+2;
  setTimeout(function(){ y = y+1;
  }, 500);
}
var x=2;
变量y=10;
而(x使用

setTimeout
在超时时执行函数一次。
setInterval
在超时时重复执行函数

要停止间歇,请使用

例如:

var x = 2,
    y = 10;
var loop = setInterval(function(){ 
    if(x<y) {
        x = x+2;
        y++;
    } else {
        clearInterval(loop);
    }
}, 500);
var x=2,
y=10;
var loop=setInterval(函数(){

如果(x如果您希望在每次迭代中执行
x=x+2;y=y+1;
,直到
x>=y
,那么您可以执行以下操作:

var x=2;
变量y=10;
var func=函数(){
//而x仍然比y小
if(xfunc()
您能解释一下setInterval和setTimeout之间的区别吗?那么当x@Makudex我添加了差异。@tom.denka我更新了代码以使用clearInterval停止循环。@nuttyaboutnatty问题代码不起作用,因为所有设置超时都是同时启动的。while循环不会等到l在开始第二次迭代之前执行第一次setTiemeout。它在所有迭代上循环,并在之后开始setTimeout。您希望在每次迭代中
x=x+2
y=y+1
?还是希望首先将
x
添加到
10
中,然后使用相同的
x=x+2
?