[javascript] sleep()函數實作

在寫 nodejs 時,有時候我們可能會需要寫定時執行的的功能或函式,但在 javascript 中是沒有 sleep() 函式的,因此這邊有幾種方式提供你實作 sleep()   例如:每三秒檢查一次資料 注意:前兩種寫法並不會 block 住目前的程式碼執行,而是設定定時器後,會再分時執行。 但第三種則會 block 住目前的程式碼執行,也代表若用在 UI thread,會使得目前頁面停頓而無法操作。  利用 setInterval(function, milliseconds),定時(微秒)執行函式 PS. 若需中止或停止需使用 clearInterval() 來取消設定 利用 setTimeout(function, milliseconds),一定時間(微秒)後執行此函式 PS. 若需中止或停止需使用 clearTimeout() 來取消設定 利用 無窮迴圈及目前時間,經過特定時間再跳出無窮迴圈。 PS. 通常大多數時候應該不會這樣做,會使得執行緒卡在無意義的程式碼中。 或許有些應用的地方是需要確保程式碼執行的順序,那我們可以使用 callback(回呼函式)的寫法來達到相同的效果。   2017/02/01 更新 看到更好的 ES6 語法,利用這種寫法,就不用一直將要執行的 callback 丟進 setTimeout / setInterval   參考資料: http://trufflepenne.blogspot.tw/2011/09/javascriptsleep.html

Continue reading