আপনার কেবল জাভাস্ক্রিপ্টে 5 সেকেন্ড বিরতি দেওয়ার চেষ্টা করা উচিত নয়। এটি সেভাবে কাজ করে না। আপনি এখন থেকে 5 সেকেন্ড চলার জন্য কোডের কোনও ক্রিয়াকলাপ নির্ধারণ করতে পারেন তবে আপনি যে কোডটি পরে চালাতে চান তা আপনাকে একটি ফাংশনে পরে যেতে হবে এবং সেই ফাংশনের পরে আপনার কোডের বাকী কাজটি অবিলম্বে চলতে থাকবে।
উদাহরণ স্বরূপ:
function stateChange(newState) {
setTimeout(function(){
if(newState == -1){alert('VIDEO HAS STOPPED');}
}, 5000);
}
তবে, আপনার যদি এই জাতীয় কোড থাকে:
stateChange(-1);
console.log("Hello");
console.log()
বিবৃতি অবিলম্বে চালানো হবে। stateChange()
ফাংশনে সময় শেষ হওয়ার পরে এটি অপেক্ষা করবে না । আপনি কেবল পূর্বনির্ধারিত সময়ের জন্য জাভাস্ক্রিপ্ট কার্যকর করতে বিরতি দিতে পারবেন না।
পরিবর্তে, যে কোনও কোড আপনি বিলম্ব করতে চান তা অবশ্যই setTimeout()
কলব্যাক ফাংশনের (অথবা সেই ফাংশন থেকে কল করা) ভিতরে থাকতে হবে ।
যদি আপনি লুপিং করে "বিরতি" দেওয়ার চেষ্টা করেন, তবে আপনি অবশ্যই জাভাস্ক্রিপ্ট দোভাষীকে কিছু সময়ের জন্য "স্তব্ধ" করতে চাইবেন। কারণ জাভাস্ক্রিপ্ট আপনার কোডটি কেবলমাত্র একক থ্রেডে চালায়, যখন আপনি লুপিং করেন তখন অন্য কিছু চালানো যায় না (অন্য কোনও ইভেন্ট হ্যান্ডলারদের কল করা যায় না)। সুতরাং, কিছু পরিবর্তনশীল পরিবর্তনের জন্য অপেক্ষা করা লুপিং কখনই কাজ করবে না কারণ এই পরিবর্তনশীলটি পরিবর্তন করতে অন্য কোনও কোড চলতে পারে না।