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.