Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

หน่วงเวลา (Sleep/Delay) ใน JavaScript ด้วย setTimeout

ใช้ setTimeout() หน่วงเวลาใน Milliseconds (1000ms = 1 วินาที)

ตัวอย่างโค้ด

var firstValue = 10;
var secondValue = 20;
var result = firstValue + secondValue;

setTimeout(function() {
    // รอ 5 วินาที (5000 ms)
}, 5 * 1000);

console.log("The result=" + result);

หมายเหตุ: โค้ดด้านบน console.log จะทำงานทันที ไม่รอ setTimeout เพราะ JS เป็น Non-blocking ต้องใช้ Callback หรือ async/await

วิธีรันโปรแกรม

ใช้คำสั่ง node fileName.js (เช่น node demo95.js)

ผลลัพธ์

The result=30

วิธีที่ถูกต้องสำหรับ Delay แบบ Blocking

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

async function demo() {
    var firstValue = 10;
    var secondValue = 20;
    var result = firstValue + secondValue;
    
    await sleep(5000); // รอ 5 วินาที
    console.log("The result=" + result);
}

demo();