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