কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে Sleep() ফাংশন কী?

Sleep()

Sleep() ব্যবহার করে আমরা একটি ফাংশনকে নির্দিষ্ট সময়ের জন্য এক্সিকিউশন থামিয়ে রাখতে পারি। C এবং PHP-তে আমরা sleep(sec) কল করি। জাভাতে Thread.sleep(), পাইথনে time.sleep() এবং GO-তে time.Sleep(2 * time.Second) থাকে।

জাভাস্ক্রিপ্ট-এ এই ধরনের স্লিপ ফাংশন নেই। কিন্তু আমরা প্রমিস (promises) এবং async/await ফাংশন (ES 2018) এর অ보며 থাকব। কারণ এই ফিচারগুলো sleep() ব্যবহার করা খুব সহজ করে দিয়েছে। সংক্ষেপে আলোচনা করা হলো।

সিনট্যাক্স-১

sleep(Time in ms).then(() => { // code })

স্লিপ ফাংশন then কলব্যাক দিয়ে উপরের মত ব্যবহার করা যায়।

সিনট্যাক্স-২

const work = async () => { await sleep(Time in ms) // code } work()

স্লিপ ফাংশন async/await দিয়ে উপরের মত ব্যবহার করা যায়।

উদাহরণ

নিচের উদাহরণে, sleep() async/await ফাংশন দিয়ে ব্যবহার করা হয়েছে। এখানে স্লিপ ফাংশন await-এর সাথে থাকে যাতে প্রসেসিং চালু থাকে। শুরুতে async ফাংশন-এর টেক্সট "Hello Tutorix" দেখানো হয় ফাংশন শুরু হলে। পরে ফাংশনটি sleep ফাংশন দিয়ে ৩ সেকেন্ডের জন্য থামিয়ে রাখা হয়েছে। সময়কাল শেষ হলে sleep ফাংশন-এর পরের টেক্সট ("Welcome to ........") দেখানো হয়। এটি লুপ টার্মিনেট না হওয়া পর্যন্ত রিপিট হবে, মানে মোট ১৯ বার টেক্সট রিপিট হবে আউটপুটে দেখানো মতে।

<html> <body> <script> 
  function sleep(ms) { 
    return new Promise(resolve => setTimeout(resolve, ms)); 
  } 
  async function Tutor() { 
    document.write('Hello Tutorix'); 
    for (let i = 1; i < 20; i++) { 
      await sleep(3000); 
      document.write(i + " " + "Welcome to tutorix" + " " + "<br>"); 
    } 
  } 
  Tutor() 
</script> </body> </html>

আউটপুট

Hello Tutorix // after 3 secs
1 Welcome to tutorix
// after 3sec...and the text will repeat until the loop terminates for every 3 sec
2 Welcome to tutorix
3 Welcome to tutorix
...
19 Welcome to tutorix
  1. জাভাস্ক্রিপ্ট ফাংশন ইনভোকেশন

  2. জাভাস্ক্রিপ্ট Number() ফাংশন

  3. জাভাস্ক্রিপ্টে ফাংশন প্রোটোটাইপ

  4. জাভাস্ক্রিপ্টে ফাংশন বরোइং (Function Borrowing)