⏱️ JavaScript এ Time-based Function কী?
JavaScript asynchronous nature-এর কারণে কিছু ফাংশন আছে যেগুলো দিয়ে আমরা কোডকে নির্দিষ্ট সময় পরে অথবা নিয়মিত সময় পরপর চালাতে পারি।
এর মধ্যে সবচেয়ে বেশি ব্যবহৃত দু’টি ফাংশন হলো:
setTimeout()
setInterval()
🕐 setTimeout()
– নির্দিষ্ট সময় পরে একবার কোড চালানো
🧠 সংজ্ঞা:
setTimeout()
একটি JavaScript built-in ফাংশন যা একটি নির্দিষ্ট সময় (delay) পরে একটি ফাংশন একবার চালায়।
📦 Syntax:
setTimeout(callbackFunction, delayInMilliseconds, arg1, arg2, ...);
callbackFunction
→ যেটা delay শেষ হলে চালানো হবেdelayInMilliseconds
→ কত মিলিসেকেন্ড পরে চালাবে
✅ উদাহরণ:
setTimeout(() => {
console.log("Hello after 2 seconds");
}, 2000);
🔍 Output:
(wait 2 seconds...)
Hello after 2 seconds
⏸️ Clear Timeout:
const timer = setTimeout(() => {
console.log("This will not run");
}, 3000);
clearTimeout(timer); // এই লাইনে টাইমার cancel হয়ে যাবে
🔁 setInterval()
– নির্দিষ্ট সময় পরপর কোড চালানো
🧠 সংজ্ঞা:
setInterval()
একটি JavaScript ফাংশন যা নির্দিষ্ট সময় পরপর একই ফাংশন বারবার চালায়, যতক্ষণ না সেটাকে clearInterval()
দিয়ে থামানো হয়।
📦 Syntax:
setInterval(callbackFunction, intervalInMilliseconds, arg1, arg2, ...);
✅ উদাহরণ:
setInterval(() => {
console.log("This prints every 1 second");
}, 1000);
🔁 Output:
This prints every 1 second
This prints every 1 second
... (infinite unless stopped)
🛑 Clear Interval:
const intervalId = setInterval(() => {
console.log("Repeating...");
}, 1000);
setTimeout(() => {
clearInterval(intervalId); // 5 সেকেন্ড পর বন্ধ করে দিচ্ছে
}, 5000);
⚖️ পার্থক্য: setTimeout
vs setInterval
বৈশিষ্ট্য | setTimeout() |
setInterval() |
---|---|---|
কাজ | নির্দিষ্ট সময় পরে একবার ফাংশন চালায় | নির্দিষ্ট সময় পরপর বারবার চালায় |
বারবার চলে কিনা | ❌ না, একবারই চলে | ✅ হ্যাঁ, যতক্ষণ না বন্ধ করা হয় |
থামানো যায় কিনা | clearTimeout(id) |
clearInterval(id) |
ব্যবহার | Delay-based কাজ (e.g. popup delay) | Timer, auto-save, animation repeat ইত্যাদি |
🧠 কোথায় কোনটা ব্যবহার উপযোগী?
Use Case | Use |
---|---|
Notification বা popup ২ সেকেন্ড পর | setTimeout() |
Clock, Stopwatch, Animation loop | setInterval() |
Debouncing, lazy loading | setTimeout() |
Periodic API Polling | setInterval() |
🧪 Practical Example: Timer with setInterval
let seconds = 0;
const timer = setInterval(() => {
seconds++;
console.log("Elapsed:", seconds);
if (seconds === 5) {
clearInterval(timer);
console.log("Timer stopped.");
}
}, 1000);
🟢 Output:
Elapsed: 1
Elapsed: 2
Elapsed: 3
Elapsed: 4
Elapsed: 5
Timer stopped.
🔚 উপসংহার:
setTimeout
একবার নির্দিষ্ট সময় পরে কোড চালাতে ভালোsetInterval
বারবার নির্দিষ্ট সময় পরপর চালাতে উপযোগী- এই দুইটি JS এর asynchronous behavior-এর গুরুত্বপূর্ণ অংশ