Jquery 为什么setTimeout函数似乎不能在无限循环中工作?
setTimeout函数似乎无法在无限循环中工作: 在这里,我使用了setTimeout函数,但它返回的值没有任何期望的延迟 资料来源如下:Jquery 为什么setTimeout函数似乎不能在无限循环中工作?,jquery,Jquery,setTimeout函数似乎无法在无限循环中工作: 在这里,我使用了setTimeout函数,但它返回的值没有任何期望的延迟 资料来源如下: var Slider = new function () { var that = this; for (var i = 1; i < 6; i++) { var a = myFunction(i); alert(a); if (i == 5) { i = 0;
var Slider = new function () {
var that = this;
for (var i = 1; i < 6; i++) {
var a = myFunction(i);
alert(a);
if (i == 5) {
i = 0;
}
}
};
function myFunction(n) {
setTimeout(function () {
return n;
}, 3000);
};
var Slider=新函数(){
var=这个;
对于(变量i=1;i<6;i++){
var a=myFunction(i);
警报(a);
如果(i==5){
i=0;
}
}
};
函数myFunction(n){
setTimeout(函数(){
返回n;
}, 3000);
};
如果(-)是1秒,则函数myFunction的输出返回正确
--- output
--- output
--- output
--- output
--- output
var Slider = new function () {
var that = this;
for (var i = 1; i < 6; i++) {
var a = myFunction(i);
if (i == 5) {
i = 0;
}
}
};
function myFunction(n) {
setTimeout(function () {
alert(n);
}, 3000);
};
——输出
---输出
---输出
---输出
---输出
变量滑块=新函数(){
var=这个;
对于(变量i=1;i<6;i++){
var a=myFunction(i);
如果(i==5){
i=0;
}
}
};
函数myFunction(n){
setTimeout(函数(){
警报(n);
}, 3000);
};
如果使用此代码,则可以清除
--- output
------ output
--------- output
------------ output
--------------- output
var Slider = new function () {
var that = this;
for (var i = 1; i < 6; i++) {
var a = myFunction(i);
//if (i == 5) {
// i = 0;
//}
}
};
function myFunction(n) {
setTimeout(function () {
alert(n);
}, (n*3000));
};
——输出
------输出
---------输出
------------输出
---------------输出
变量滑块=新函数(){
var=这个;
对于(变量i=1;i<6;i++){
var a=myFunction(i);
//如果(i==5){
//i=0;
//}
}
};
函数myFunction(n){
setTimeout(函数(){
警报(n);
}(n*3000));
};
我停止无限循环,它也适用于无限循环。首先,您的
return n
调用将值返回到setTimeout
回调myFunction
没有返回任何内容。因此,a
中的值可以是任何值
其次,
setTimeout
在给定的超时后执行一段代码,但不会阻止当前的执行。这意味着您的警报(a)
将在您调用myFunction
后立即被调用,然后在3秒钟后,将执行setTimeout
回调。似乎您有一个无限循环开始。那么,如何使用alert()
进行调试?myFunction()
将始终立即返回,没有返回值。稍后,内部函数将返回n
,但该值将被忽略,并且与滑块中的任何代码无关myFunction
不返回任何值<代码>值未定义。我不清楚你想做什么。你在下面接受的答案甚至都无法运行,更不用说工作了。你接受它的理由是什么?现在我明白你为什么接受了这么糟糕的答案。你们都在同一家公司工作!我现在看到你的是我一直在寻找的第三个连续向上投票帐户(与Kamruzzaman和Rezoyanul Islam Reza合并)。我想现在一定要给IQRASYS发邮件。这完全是不专业的行为。