中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js中如何實現sleep

發布時間:2021-09-26 15:44:03 來源:億速云 閱讀:293 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“js中如何實現sleep”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“js中如何實現sleep”這篇文章吧。

  1、利用循環實現類似sleep

  functionsleep(d){

  for(vart=Date.now();Date.now()-t<=d;);

  }

  sleep(5000);//當前方法暫停5秒

  優點:簡單粗暴,通俗易懂。

  缺點:這是最簡單粗暴的實現,確實sleep了,也確實卡死了,CPU會飆升,無論你的服務器CPU有多么Niubility。

  2、Promise版本實現類似sleep

  functionsleep(ms){

  returnnewPromise(resolve=>

  setTimeout(resolve,ms)

  )

  }

  sleep(3000).then(()=>{

  //code

  })

  優點:這種方式實際上是用了setTimeout,沒有形成進程阻塞,不會造成性能和負載問題。

  缺點:雖然不像callback套那么多層,但仍不怎么美觀,而且當我們需要在某過程中需要停止執行(或者在中途返回了錯誤的值),還必須得層層判斷后跳出,非常麻煩,而且這種異步并不是那么徹底,還是看起來別扭。

  3、通過generate來實現類似sleep

  function*sleep(ms){

  yieldnewPromise(function(resolve,reject){

  console.log(111);

  setTimeout(resolve,ms);

  })

  }

  sleep(500).next().value.then(()=>{

  console.log(11111)

  })

  優點:同Promise優點,另外代碼就變得非常簡單干凈,沒有then那么生硬和惡心。

  缺點:但不足也很明顯,就是每次都要執行next()顯得很麻煩,雖然有co(第三方包)可以解決,但就多包了一層不好看,錯誤也必須按co的邏輯來處理不爽。

以上是“js中如何實現sleep”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

弥渡县| 木兰县| 兴和县| 远安县| 阳曲县| 扎赉特旗| 托克托县| 丰台区| 北碚区| 二连浩特市| 承德市| 太谷县| 从江县| 当涂县| 石河子市| 梓潼县| 土默特左旗| 南宁市| 清水河县| 和平县| 西乡县| 航空| 台州市| 安化县| 武宣县| 平塘县| 翁源县| 陆良县| 北碚区| 太康县| 滨州市| 博罗县| 青田县| 大连市| 新河县| 望谟县| 五常市| 山丹县| 九台市| 千阳县| 南通市|