js sleep函数&使用async 和 await 每隔1s 2s 3s打印


1.投机取巧版

 1 var counts=1;
 2 async function aa(arg){
 3  return arg;
 4 }
 5 aa(counts).then((res)=>{
 6    setTimeout(function(){
 7     console.log(res)
 8     setTimeout(arguments.callee,(res++)*1000)
 9    },res*1000)
10 })

2.正解

js一直没有类似于sleep这种方法,因此完全可以用promise构造一个休眠函数,结合async/await就可以实现功能,这也是解决setTimeout不准确的一种方式

 1 function sleep(interval){
 2 return new Promise((resolve)=>    
 3     setTimeout(resolve, interval);
 4           });
 5 }
 6 async function stepPrint(n){
 7     for(let i=0;i<=n;i++){
 8          console.log(i);
 9         await  sleep(i*10000);
10          }
11 }
12 stepPrint(5)

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM