Javascript 对于设置超时间隔增加的循环
嗨,我正在尝试让for循环以每次递增的间隔运行3次。我希望循环每次运行时都将文本输出到控制台,但我无法阻止循环一次全部运行并显示done、finished和done,然后两次finished。代码:Javascript 对于设置超时间隔增加的循环,javascript,Javascript,嗨,我正在尝试让for循环以每次递增的间隔运行3次。我希望循环每次运行时都将文本输出到控制台,但我无法阻止循环一次全部运行并显示done、finished和done,然后两次finished。代码: function tellMeWhenDone () { for(var i=0; i<3; i++) { if (i === 0) var text = console.log('done'); else i
function tellMeWhenDone () {
for(var i=0; i<3; i++) {
if (i === 0)
var text = console.log('done');
else if (i === 1)
var text = console.log('and done');
else (i === 2)
var text = console.log('finished');
time(i);
}
}
function time (i){
setInterval(function(text){
return text;
}, 1000*(i+1))
}
tellMeWhenDone();
函数tellMeWhenDone(){
对于(var i=0;i设置一个重复事件。setTimeout将只触发一次
要创建三个超时,1、2和3秒-您可以使用:
setTimeout(function(){console.log('done')},1000);
setTimeout(function(){console.log('and done')},2000);
setTimeout(function(){console.log('finished')},3000);
注意,没有循环。每个setTimeout都会执行,当达到超时时,console.log语句就会运行
for循环在setInterval调用之前完全执行。setInterval设置重复事件。setTimeout将只触发一次
要创建三个超时,1、2和3秒-您可以使用:
setTimeout(function(){console.log('done')},1000);
setTimeout(function(){console.log('and done')},2000);
setTimeout(function(){console.log('finished')},3000);
注意,没有循环。每个setTimeout都会执行,当达到超时时,console.log语句就会运行
在setInterval调用之前,for循环已完全执行。请尝试此操作。我希望它能解决您的prblm问题
function tellMeWhenDone () {
for(var i=0; i<3; i++) {
if (i === 0)
var text = console.log('done');
else if (i === 1)
var text = console.log('and done');
else if (i === 2)
var text = console.log('finished');
time(i);
}
}
function time (i){
setInterval(function(text){
return text;
}, 1000*(i+1))
}
tellMeWhenDone();
函数tellMeWhenDone(){
对于(var i=0;i试试这个..我希望它能解决您的问题
function tellMeWhenDone () {
for(var i=0; i<3; i++) {
if (i === 0)
var text = console.log('done');
else if (i === 1)
var text = console.log('and done');
else if (i === 2)
var text = console.log('finished');
time(i);
}
}
function time (i){
setInterval(function(text){
return text;
}, 1000*(i+1))
}
tellMeWhenDone();
函数tellMeWhenDone(){
对于(var i=0;i删除else循环中的条件
函数tellMeWhenDone(){
对于(变量i=0;i<3;i++){
如果(i==0)
var text=console.log('done');
else如果(i==1)
var text=console.log('and done');
其他的
var text=console.log('finished');
时间(i);
}
}
功能时间(一){
设置间隔(函数(文本){
返回文本;
},1000*(i+1))
}
tellMeWhenDone();
删除else循环中的条件
函数tellMeWhenDone(){
对于(变量i=0;i<3;i++){
如果(i==0)
var text=console.log('done');
else如果(i==1)
var text=console.log('and done');
其他的
var text=console.log('finished');
时间(i);
}
}
功能时间(一){
设置间隔(函数(文本){
返回文本;
},1000*(i+1))
}
tellMeWhenDone();
您可以尝试回调:
函数日志(msg){
document.getElementById('logger').innerHTML+='
'+msg;
}
_complete()上的函数{
log('all done,when='+Date.now());
}
对于(变量i=1,max=5;max>=i;i++){
(功能(x){
setTimeout(函数(){
log('loop,x='+x+',when='+Date.now());
如果(最大===x)
关于_complete();
},1000*x);//增加超时
})(i) );
}
运行代码…
您可以尝试回调:
函数日志(msg){
document.getElementById('logger').innerHTML+='
'+msg;
}
_complete()上的函数{
log('all done,when='+Date.now());
}
对于(变量i=1,max=5;max>=i;i++){
(功能(x){
setTimeout(函数(){
log('loop,x='+x+',when='+Date.now());
如果(最大===x)
关于_complete();
},1000*x);//增加超时
})(i) );
}
运行代码…
…问题是什么?为什么是“else(i==2)”has condition??Else有一个condition,因为我对JS没有经验。我接受使用3个单独的setTimeout语句,间隔为1000、2000和3000ms,这将得到我想要的结果。我试图将此函数构造为一个练习,所以这就是为什么我可能不会以最直接的方式进行此操作。谢谢大家的支持你的帮助。为什么var text=console.log('done');
?你希望文本有什么价值,你会用它做什么?为什么如果..否则当你可以做['done','and done','finished'][i]
?问题是什么?为什么是“else”(i==2)has condition??Else有一个condition,因为我对JS没有经验。我接受使用3个单独的setTimeout语句,间隔为1000、2000和3000ms,这将得到我想要的结果。我试图将此函数构造为一个练习,所以这就是为什么我可能不会以最直接的方式进行此操作。谢谢大家的支持你的帮助。为什么var text=console.log('done');
?你希望文本有什么价值,你会用它做什么?为什么如果..否则你可以做['done','and done','finished'][i]
?