Callback হলো একটি ফাংশন যা অন্য একটি ফাংশন সম্পন্ন হওয়ার পরে চালিত হয়। CoffeeScript-এ callback ব্যবহার করা JavaScript-এর মতোই, তবে CoffeeScript-এর সংক্ষিপ্ত সিনট্যাক্স কোডটিকে আরও পরিষ্কার এবং সহজ করে তোলে। CoffeeScript-এ callback ফাংশন প্রাথমিকভাবে অ্যাসিঙ্ক্রোনাস কার্যকলাপের জন্য ব্যবহৃত হয়, যেমন ইভেন্ট হ্যান্ডলিং বা HTTP রিকোয়েস্ট।
CoffeeScript-এ Callback এর সাধারণ ব্যবহার
CoffeeScript-এ একটি ফাংশনকে অন্য একটি ফাংশনের আর্গুমেন্ট হিসেবে পাঠানোর মাধ্যমে callback ব্যবহার করা হয়।
উদাহরণ: একটি Callback ফাংশন ব্যবহার
greet = (name, callback) ->
console.log "Hello, #{name}!"
callback() # কলব্যাক ফাংশনটি কল করা হচ্ছে
goodbye = ->
console.log "Goodbye!"
greet "Alice", goodbye
এখানে:
greetএকটি ফাংশন যা দুটি আর্গুমেন্ট নেয়:nameএবংcallback।goodbyeএকটি ফাংশন যা কলব্যাক হিসেবেgreetফাংশনে পাঠানো হয়েছে।- যখন
greetফাংশনটিcallback()কল করে, এটিgoodbyeফাংশনটি কল করবে, যা "Goodbye!" প্রিন্ট করবে।
JavaScript-এ কম্পাইল হওয়া কোড:
var greet, goodbye;
greet = function(name, callback) {
console.log("Hello, " + name + "!");
return callback();
};
goodbye = function() {
return console.log("Goodbye!");
};
greet("Alice", goodbye);
CoffeeScript-এ অ্যাসিঙ্ক্রোনাস Callback ব্যবহার
একটি সাধারণ অ্যাসিঙ্ক্রোনাস callback ব্যবহারের উদাহরণ, যেমন সেটTimeout ব্যবহার করা:
উদাহরণ: অ্যাসিঙ্ক্রোনাস Callback
fetchData = (callback) ->
console.log "Fetching data..."
setTimeout ->
data = "Data received"
callback(data)
, 2000 # 2 সেকেন্ড পর কলব্যাক ফাংশন কল হবে
processData = (data) ->
console.log "Processing: #{data}"
fetchData processData
এখানে:
fetchDataএকটি অ্যাসিঙ্ক্রোনাস ফাংশন যা ২ সেকেন্ড পরprocessDataফাংশনকে কল করে।setTimeoutব্যবহার করা হয়েছে একটি দেরী ফাংশন কল করার জন্য।- ২ সেকেন্ড পর
processDataফাংশনটিfetchDataএর কলব্যাক হিসেবে চালু হবে এবং "Processing: Data received" প্রিন্ট করবে।
JavaScript-এ কম্পাইল হওয়া কোড:
var fetchData, processData;
fetchData = function(callback) {
console.log("Fetching data...");
return setTimeout(function() {
var data;
data = "Data received";
return callback(data);
}, 2000);
};
processData = function(data) {
return console.log("Processing: " + data);
};
fetchData(processData);
CoffeeScript-এ Callback ফাংশনের অ্যারো সিনট্যাক্স ব্যবহার
CoffeeScript-এ => (অ্যারো ফাংশন) ব্যবহার করে callback ফাংশন আরও সহজভাবে ডিফাইন করা যায়। এটি this প্রসঙ্গ সঠিকভাবে পরিচালনা করতে সাহায্য করে।
উদাহরণ: অ্যারো ফাংশন সহ Callback
fetchData = (callback) ->
console.log "Fetching data..."
setTimeout =>
data = "Data received"
callback(data)
, 2000
processData = (data) ->
console.log "Processing: #{data}"
fetchData processData
এখানে:
setTimeoutএর মধ্যে=>ব্যবহার করা হয়েছে যাতেthisপ্রসঙ্গ সঠিকভাবে কাজ করে এবং callback ফাংশনটি সঠিকভাবে চালু হয়।
JavaScript-এ কম্পাইল হওয়া কোড:
var fetchData, processData;
fetchData = function(callback) {
console.log("Fetching data...");
return setTimeout(function() {
var data;
data = "Data received";
return callback(data);
}, 2000);
};
processData = function(data) {
return console.log("Processing: " + data);
};
fetchData(processData);
Callback Error Handling (অ্যারোর হ্যান্ডলিং)
অ্যাসিঙ্ক্রোনাস ফাংশনগুলোর মধ্যে error handling এর জন্য callback ব্যবহার করা যেতে পারে। সাধারণত, অ্যাসিঙ্ক্রোনাস ফাংশনে একটি প্রথম প্যারামিটার হিসেবে error পাঠানো হয়, যাতে error হলে তা হ্যান্ডল করা যায়।
উদাহরণ: Error Handling সহ Callback
fetchData = (callback) ->
console.log "Fetching data..."
setTimeout ->
error = false
if error
callback("Error occurred", null)
else
data = "Data received"
callback(null, data)
, 2000
processData = (error, data) ->
if error
console.log "Error: #{error}"
else
console.log "Processing: #{data}"
fetchData processData
এখানে:
fetchDataএকটি error এবং ডেটা উভয়ই কলব্যাক আর্গুমেন্ট হিসেবে পাঠায়। যদি কোনো error ঘটে, তাহলে প্রথম প্যারামিটারerrorহবে।processDataফাংশনটি error বা ডেটা অনুযায়ী সংশ্লিষ্ট কাজ করবে।
JavaScript-এ কম্পাইল হওয়া কোড:
var fetchData, processData;
fetchData = function(callback) {
console.log("Fetching data...");
return setTimeout(function() {
var error, data;
error = false;
if (error) {
return callback("Error occurred", null);
} else {
data = "Data received";
return callback(null, data);
}
}, 2000);
};
processData = function(error, data) {
if (error) {
return console.log("Error: " + error);
} else {
return console.log("Processing: " + data);
}
};
fetchData(processData);
সারাংশ
- Callback CoffeeScript-এ একটি ফাংশন যা অন্য একটি ফাংশনের আর্গুমেন্ট হিসেবে পাস করা হয় এবং সেই ফাংশনটি নির্দিষ্ট সময়ে চালিত হয়।
- CoffeeScript-এ asynchronous callback ব্যবহার করে আপনি অ্যাসিঙ্ক্রোনাস কার্যকলাপ যেমন
setTimeout,fs.readFile, বা API কলগুলি পরিচালনা করতে পারেন। - Error handling সহ callback ব্যবহারের মাধ্যমে অ্যাসিঙ্ক্রোনাস কার্যকলাপে ত্রুটি পরিচালনা করা যায়।
- CoffeeScript এর arrow functions (
=>) কলব্যাক ফাংশনগুলোকে আরও পরিষ্কার ও কার্যকরী করে, বিশেষ করেthisপ্রসঙ্গের সাথে কাজ করার সময়।
CoffeeScript-এ callback ব্যবহার করা JavaScript এর মতোই, তবে CoffeeScript এর সহজ সিনট্যাক্স কোড লেখাকে আরও দ্রুত এবং পরিষ্কার করে তোলে।