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

Tạo độ trễ (sleep/delay) trong JavaScript với setTimeout

JavaScript không có hàm sleep() built-in. Dùng setTimeout() hoặc Promise + async/await để tạo độ trễ.

Cách 1: setTimeout (callback)

var a = 10, b = 20;
var result = a + b;

setTimeout(function() {
    console.log("Kết quả sau 5 giây: " + result);
}, 5000); // 5000ms = 5s

console.log("Dòng này in ngay lập tức");

Cách 2: Promise + async/await (khuyên dùng)


function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

async function demo() {
    console.log("Bắt đầu");
    await sleep(2000);
    console.log("Sau 2 giây");
    await sleep(1000);
    console.log("Sau 1 giây nữa");
}

demo();

Cách chạy

node demo.js

Lưu ý: setTimeout không block thread (non-blocking). Code sau nó chạy ngay. Dùng await sleep() để code đợi như synchronous.