⏱️ 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-এর গুরুত্বপূর্ণ অংশ