आपको केवल जावास्क्रिप्ट में 5 सेकंड रोकने की कोशिश नहीं करनी चाहिए। यह उस तरह से काम नहीं करता है। आप अब से 5 सेकंड चलाने के लिए कोड के एक फ़ंक्शन को शेड्यूल कर सकते हैं, लेकिन आपको उस कोड को डालना होगा जिसे आप बाद में किसी फ़ंक्शन में चलाना चाहते हैं और उस फ़ंक्शन के बाद आपके बाकी कोड तुरंत चलाना जारी रखेंगे।
उदाहरण के लिए:
function stateChange(newState) {
setTimeout(function(){
if(newState == -1){alert('VIDEO HAS STOPPED');}
}, 5000);
}
लेकिन, अगर आपके पास इस तरह का कोड है:
stateChange(-1);
console.log("Hello");
console.log()
बयान तुरन्त चलेगी। यह stateChange()
फ़ंक्शन में टाइमआउट की आग के बाद तक इंतजार नहीं करेगा । आप समय की पूर्व निर्धारित राशि के लिए जावास्क्रिप्ट निष्पादन को रोक नहीं सकते।
इसके बजाय, कोई भी कोड जिसे आप विलंब से चलाना चाहते हैं, setTimeout()
कॉलबैक फ़ंक्शन (या उस फ़ंक्शन से कॉल किया गया) के अंदर होना चाहिए ।
यदि आपने लूपिंग द्वारा "पॉज़" करने की कोशिश की है, तो आप अनिवार्य रूप से एक समय के लिए जावास्क्रिप्ट दुभाषिया को "लटका" देंगे। क्योंकि जावास्क्रिप्ट आपके कोड को केवल एक ही धागे में चलाता है, जब आप लूपिंग करते हैं तो कुछ और नहीं चल सकता है (कोई अन्य घटना संचालकों को नहीं बुलाया जा सकता है)। इसलिए, परिवर्तनशील के लिए कुछ चर की प्रतीक्षा कर रहा है, कभी भी काम नहीं करेगा क्योंकि कोई अन्य कोड उस चर को बदलने के लिए नहीं चल सकता है।