_.delay এবং _.defer কি?
_.delay এবং _.defer হল Underscore.js লাইব্রেরির দুটি ফাংশন যা আপনাকে একটি ফাংশন নির্দিষ্ট সময় পরে চালানোর জন্য ব্যবহৃত হয়। এই দুটি ফাংশন মূলত ফাংশন বিলম্বিত (delayed) করার জন্য ব্যবহৃত হলেও, তাদের মধ্যে একটি গুরুত্বপূর্ণ পার্থক্য রয়েছে।
_.delay(): এটি একটি নির্দিষ্ট সময় পর একটি ফাংশন চালানোর জন্য ব্যবহৃত হয়। আপনি যতো সময় নির্ধারণ করবেন, ফাংশনটি ওই সময় পরে একবার রান করবে।_.defer(): এটি_.delay()এর মতোই, তবে এটি ফাংশনটি বর্তমান কল স্ট্যাকের পর এক্সিকিউট করার জন্য ব্যবহৃত হয়। অর্থাৎ, এটি ফাংশনটি তখন চালাবে যখন কল স্ট্যাকের কাজ সম্পন্ন হবে (যেমন, ব্রাউজারের রেন্ডারিং কাজগুলো আগে সম্পন্ন হবে)।
_.delay এর ব্যবহার
_.delay ফাংশনটি নির্দিষ্ট সময় পরে একটি ফাংশন চালাতে ব্যবহার করা হয়। এটি প্রথম আর্গুমেন্ট হিসেবে ফাংশন গ্রহণ করে এবং দ্বিতীয় আর্গুমেন্ট হিসেবে বিলম্বের সময় (মিলিসেকেন্ড) প্রদান করা হয়।
সিনট্যাক্স:
_.delay(function, wait, [args]);
function: যেই ফাংশনটি আপনি বিলম্বিত করতে চান।wait: মিলিসেকেন্ডে বিলম্বের সময়।[args]: (অপশনাল) ফাংশনের আর্গুমেন্ট, যেগুলো বিলম্বিত ফাংশনের সাথে পাঠানো হবে।
উদাহরণ:
_.delay(function() {
console.log("This message is delayed by 2 seconds!");
}, 2000);
আউটপুট:
This message is delayed by 2 seconds!
এখানে, ফাংশনটি ২ সেকেন্ড পর রান করবে।
আরেকটি উদাহরণ:
function greet(name) {
console.log("Hello, " + name);
}
_.delay(greet, 3000, "John");
আউটপুট:
Hello, John
এখানে, greet ফাংশনটি ৩ সেকেন্ড পর "John" প্যারামিটার সহ রান হবে।
_.defer এর ব্যবহার
_.defer ফাংশনটি _.delay() এর মতোই, তবে এটি ফাংশনটি চলমান কল স্ট্যাকের পর এক্সিকিউট করতে ব্যবহৃত হয়। এর মানে হল যে, এটি ফাংশনটি কল স্ট্যাকের কাজ শেষ হওয়ার পর রান করবে, কিন্তু আপনি কোনো বিলম্ব (delay) নির্ধারণ করতে পারবেন না। এটি একটি setTimeout এর মতো কাজ করে, কিন্তু সময় নির্ধারণ না করে।
সিনট্যাক্স:
_.defer(function, [args]);
function: যেই ফাংশনটি আপনি defer করতে চান।[args]: (অপশনাল) ফাংশনের আর্গুমেন্ট।
উদাহরণ:
_.defer(function() {
console.log("This message is deferred!");
});
আউটপুট:
This message is deferred!
এখানে, ফাংশনটি বর্তমান কল স্ট্যাকের কাজ শেষ হওয়ার পর এক্সিকিউট হবে।
আরেকটি উদাহরণ:
function greet(name) {
console.log("Hello, " + name);
}
_.defer(greet, "Alice");
আউটপুট:
Hello, Alice
এখানে, greet ফাংশনটি কল স্ট্যাকের কাজ শেষ হওয়ার পর "Alice" প্যারামিটার সহ রান হবে।
_.delay এবং _.defer এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | _.delay() | _.defer() |
|---|---|---|
| বিলম্বের সময় | আপনি নির্দিষ্ট সময় (মিলিসেকেন্ড) প্রদান করতে পারেন | কোনো বিলম্ব নির্ধারণ করা হয় না, এটি কল স্ট্যাকের পর রান হয় |
| ফাংশন এক্সিকিউশন | নির্দিষ্ট সময় পর এক্সিকিউট হয় | কল স্ট্যাকের কাজ শেষ হওয়ার পর এক্সিকিউট হয় |
| ব্যবহার | নির্দিষ্ট সময় পর এক্সিকিউট করা প্রয়োজন | কল স্ট্যাকের কাজ শেষ হওয়ার পর ফাংশন এক্সিকিউট করা প্রয়োজন |
সারাংশ
_.delay()আপনাকে একটি ফাংশন নির্দিষ্ট সময় পরে রান করানোর সুযোগ দেয়। এটি বিলম্বের সময় মিলিসেকেন্ডে নির্ধারণ করে।_.defer()ফাংশনটি কল স্ট্যাকের কাজ শেষ হওয়ার পর ফাংশনটি এক্সিকিউট করে, তবে এটি কোনো নির্দিষ্ট বিলম্ব নির্ধারণ করতে দেয় না।
এই দুটি ফাংশন JavaScript এর setTimeout ফাংশনের মতো কাজ করে, কিন্তু এগুলোর নিজস্ব ব্যবহারের পরিস্থিতি এবং সুবিধা রয়েছে। _.delay() নির্দিষ্ট সময় বিলম্বিত করতে ব্যবহৃত হয়, আর _.defer() কল স্ট্যাকের কাজ শেষ হওয়ার পর ফাংশন রান করতে ব্যবহৃত হয়।
Read more