Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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 在for循环中使用setTimeout_Javascript_Node.js_Settimeout - Fatal编程技术网

Javascript 在for循环中使用setTimeout

Javascript 在for循环中使用setTimeout,javascript,node.js,settimeout,Javascript,Node.js,Settimeout,我正在尝试编写一个函数,打印5等待1秒,打印4等待2秒,打印3等待3秒,以此类推 我写了这个函数: for(let i=5;i>0;i--){ setTimeout(()=>{ let localTime = new Date().toLocaleString(); console.log(`${i} - ${localTime}`) },5-i*1000); } 这张照片是: '5 - 10/30/2019, 11:10:17 AM' '4 - 10/30

我正在尝试编写一个函数,打印5等待1秒,打印4等待2秒,打印3等待3秒,以此类推

我写了这个函数:

for(let i=5;i>0;i--){
   setTimeout(()=>{
   let localTime = new Date().toLocaleString();
    console.log(`${i} - ${localTime}`)
  },5-i*1000);
}
这张照片是:

'5 - 10/30/2019, 11:10:17 AM'
'4 - 10/30/2019, 11:10:17 AM'
'3 - 10/30/2019, 11:10:17 AM'
'2 - 10/30/2019, 11:10:17 AM'
'1 - 10/30/2019, 11:10:17 AM'
我写了这组陈述:

console.log(new Date().toLocaleString());

 setTimeout(()=>{
  let localTime = new Date().toLocaleString();
    console.log(`${5} - ${localTime}`)
},1000)

setTimeout(()=>{
  let localTime = new Date().toLocaleString();
    console.log(`${4} - ${localTime}`)
},2*1000)

setTimeout(()=>{
  let localTime = new Date().toLocaleString();
    console.log(`${3} - ${localTime}`)
},3*1000)
setTimeout(()=>{
  let localTime = new Date().toLocaleString();
    console.log(`${2} - ${localTime}`)
},4*1000)
setTimeout(()=>{
  let localTime = new Date().toLocaleString();
    console.log(`${1} - ${localTime}`)
},5*1000)
这些印刷品:

'10/30/2019, 11:13:45 AM'
'5 - 10/30/2019, 11:13:46 AM'
'4 - 10/30/2019, 11:13:47 AM'
'3 - 10/30/2019, 11:13:48 AM'
'2 - 10/30/2019, 11:13:49 AM'
'1 - 10/30/2019, 11:13:50 AM'
第二组语句将时间增加1秒,但for循环中设置的超时时间不起作用

如何实现功能,我哪里出了问题

操作顺序

5 - 1 * 1000
5 - (1*1000)
5 - 1000
-995
它需要有括号

},(5-i) * 1000);
没有for循环的更好方法是创建一个函数,让计时器递归地调用它,直到完成为止

函数倒计时(最大值){
函数执行(){
让localTime=newdate().toLocalString();
log(`${max}-${localTime}`)
最大值-=1
if(max>0)window.setTimeout(执行,1000)
}
执行()
}
倒计时(5)操作顺序

5 - 1 * 1000
5 - (1*1000)
5 - 1000
-995
它需要有括号

},(5-i) * 1000);
没有for循环的更好方法是创建一个函数,让计时器递归地调用它,直到完成为止

函数倒计时(最大值){
函数执行(){
让localTime=newdate().toLocalString();
log(`${max}-${localTime}`)
最大值-=1
if(max>0)window.setTimeout(执行,1000)
}
执行()
}

倒计时(5)我认为setInterval对您来说是一种更好的方法:操作顺序我认为setInterval对您来说是一种更好的方法:操作顺序Guess downvoter认为它应该被关闭而不被回答。:)我猜投票人认为它应该被关闭而不被回答。:)