Javascript 设置超时的问题

Javascript 设置超时的问题,javascript,settimeout,Javascript,Settimeout,我又有问题了,jajaja var X=0 var Y=0 使用此函数,我希望每秒将Y添加到X function FA(){ X= X+Y; setTimeout(function(){FA()},1000); } 使用此函数,我想将1添加到Y function FB() { Y=Y+1; } 例如: Y=0 X=0 X=0 X=0 [...] (execute the function FB) Y=1 X=1 X=2 X=3 [...] 我的问题是,

我又有问题了,jajaja

var X=0
var Y=0
使用此函数,我希望每秒将Y添加到X

function FA(){
    X= X+Y;
    setTimeout(function(){FA()},1000); 
}
使用此函数,我想将1添加到Y

function FB()
{
    Y=Y+1;   
} 
例如:

Y=0
X=0
X=0
X=0
[...]
(execute the function FB) 
Y=1
X=1
X=2
X=3
[...]

我的问题是,第二次执行FB时,它不是+2到X,它是+4,我只想要+2。

您的代码看起来不错。我将更改一些语法细节以使其更简单:

function FA(){
    X += Y;
    setTimeout("FA()",1000); 
}

function FB(){
    Y++;
}

我想问题可能出在你没有发布的代码中。看起来你们加了两次Y值,所以三重检查你们是否再次调用FA。这会导致你现在所经历的情况(你可能有两次超时)。

我不明白你可能会用FB第二次解雇FA……你的代码很好。我只是做了一个快速测试,效果很好。在FB的一次调用中,y==1,然后x增加1。在另一个调用中,y==2,然后x增加2。你能用小提琴重新构造这个问题吗?在这里工作很好:@GôTô这是说西班牙语的人表达笑声的方式(哈哈哈)非常感谢,问题是又一次暂停:p@GDP很高兴我能帮忙。请单击“接受”按钮(投票箭头下)