最近想在JavaScript里写个类似下面无限循环且暂停固定时间段的小方法,却发现js里面没有sleep。
while(true){
//dosomething()
Thread.sleep(1000); //pause for 1 sec
}
所以在JavaScript里的替代方法是setInterval(function, milliseconds)
例子:
显示当前时间:
//output date and time string
var dateTime = () => {
var date = new Date();
return date.toDateString()+' '+date.toLocaleTimeString();
}
//refresh each second
setInterval(function(){
$('#clock').text(dateTime());
}, 1000);
==============
下面是Google来的另一种sleep方法:
- 先自己写一个sleep方法
const sleep = (milliseconds) => {
return new Promise(resolve => setTimeout(resolve, milliseconds))
}
- 使用then
sleep(500).then(() => {
//do stuff
})
- 使用asyn异步
const doSomething = async () => {
await sleep(2000)
//do stuff
}
doSomething()
Reference: