คุณไม่ควรลองหยุดจาวาสคริปต์เป็นเวลา 5 วินาที มันไม่ทำงานอย่างนั้น คุณสามารถกำหนดฟังก์ชั่นของรหัสให้ทำงาน 5 วินาทีจากนี้ แต่คุณต้องใส่รหัสที่คุณต้องการเรียกใช้ในภายหลังในฟังก์ชั่นและส่วนที่เหลือของรหัสของคุณหลังจากฟังก์ชั่นนั้นจะทำงานต่อไปทันที
ตัวอย่างเช่น:
function stateChange(newState) {
setTimeout(function(){
if(newState == -1){alert('VIDEO HAS STOPPED');}
}, 5000);
}
แต่ถ้าคุณมีรหัสเช่นนี้:
stateChange(-1);
console.log("Hello");
console.log()
คำสั่งจะทำงานทันที มันจะไม่รอจนกว่าจะหมดเวลาในการstateChange()
ทำงาน คุณไม่สามารถหยุดการประมวลผลจาวาสคริปต์ไว้ชั่วคราวได้ตามระยะเวลาที่กำหนดไว้
รหัสใด ๆ ที่คุณต้องการเรียกใช้การหน่วงเวลาต้องอยู่ภายในsetTimeout()
ฟังก์ชันการเรียกกลับ (หรือเรียกจากฟังก์ชันนั้น)
หากคุณพยายาม "หยุด" โดยการวนซ้ำคุณจะต้อง "หยุด" ล่าม Javascript เป็นระยะเวลาหนึ่ง เนื่องจาก Javascript รันโค้ดของคุณในเธรดเดียวเท่านั้นเมื่อคุณวนลูปไม่มีสิ่งใดสามารถเรียกใช้ได้ (ไม่มีตัวจัดการเหตุการณ์อื่นที่สามารถเรียกได้) ดังนั้นการวนซ้ำการรอให้ตัวแปรบางตัวเปลี่ยนจะไม่ทำงานเพราะไม่มีรหัสอื่นที่สามารถเรียกใช้เพื่อเปลี่ยนตัวแปรนั้นได้