Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Hàm Sleep() trong JavaScript

Sleep()

Sleep() tạm dừng function một khoảng thời gian. C/C++ có sleep(sec), Java Thread.sleep(), Python time.sleep(), Go time.Sleep(2 * time.Second). JavaScript không có sleep built-in. Nhờ Promise và async/await (ES2018), có thể tự tạo sleep dễ dàng.

Cú pháp 1: Promise + then

sleep(ms).then(() => { // code });

Cú pháp 2: async/await

const work = async () => { await sleep(ms); // code } work();

Ví dụ: async/await + sleep

<html> <body> <script>    function sleep(ms) {       return new Promise(resolve => setTimeout(resolve, ms));    }    async function Tutor() {       document.write('Hello Tutorix');       for (let i = 1; i < 20; i++) {          await sleep(3000);          document.write(i + ' Welcome to tutorix' + ' ' + '<br>');       }    }    Tutor(); </script> </body> </html>

Kết quả

Hello Tutorix // sau 3s: 1 Welcome to tutorix // sau 3s: 2 Welcome to tutorix ... lặp 19 lần

Lưu ý: sleep chỉ pause async function hiện tại, không block main thread (non-blocking). Code khác vẫn chạy. Đây là đặc tính event-driven của JS.