মোহাম্মদ আব্দুল্লাহ
Callback কি ?
Callback একটি ফাংশনের জন্য একটি asynchronous সমতূল্য । একটি কলব্যাক ফাংশন একটি নির্দিষ্ট কাজের শেষে সাধারনত কল করা হয়ে থাকে । Node.js এ callback ফাংশন প্রচুর পরিমানে ব্যবহার হয়ে থাকে । Node.js এর সকল API গুলি এমনাভাবে তৈরী করা হয়েছে যাতে করে তারা callbacks সমর্থন করে ।
উদাহরণস্বরূপ, একটি ফাইল পড়ার ফাংশন ফাইল পড়ার পর আবার আগের জায়গায় ফিরে আসে যাতে করে পরবর্তী নির্দেশ execute করতে পারে । ফাইলটি পড়ার পর ফাইলের কন্টেন্ট প্যারামিটার হিসেবে callback ফাংশন এ আসবে । এই কারনেই Node.js এত জনপ্রিয় কারন এটি কোন ধরনের ফাংশন call ছাড়াই অনেক request প্রক্রিয়া করতে পারে ।
উদাহরণ (Blocking Code)
input.txt নামে একটি ফাইল তৈরী করুন এবং তাতে নিম্নের text টি copy/paste করে দিন ।
Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!
একটি javascript (main.js) এ নিম্নের কোড copy/paste করে দিন
var fs = require("fs"); var data = fs.readFileSync('input.txt'); console.log(data.toString()); console.log("Program Ended");
এখন main.js ফাইলটি রান করান
$ node main.js
নিম্নের আউটপুট দেখুন
Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!
Program Ended
উদাহরণ (Non-Blocking Code)
.txt নামে একটি ফাইল তৈরী করুন এবং তাতে নিম্নের text টি copy/paste করে দিন ।
Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!
main.js এ নিম্নের কোড copy/paste করে দিন
var fs = require("fs"); fs.readFile('input.txt', function (err, data) { if (err) return console.error(err); console.log(data.toString()); });
console.log("Program Ended");
এখন main.js ফাইলটি রান করান
$ node main.js
নিম্নের আউটপুট দেখুন
Program Ended
Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!
এই দুটি উদাহরণ Blocking এবং Non-Blocking Code ধারণার ব্যাখ্যা করে । প্রথম উদাহারনে, প্রথমে ফাইল পড়ে এবং ফাইল পড়া শেষ হলে বাকি কোড execute করে । অন্যদিকে দ্বিতীয় উদাহারনে ফাইল পড়া শেষ হওয়ার আগেই অন্যান্য কোড execute করে ফেলে । এইভাবেই Blocking কোড sequencely program রান করে থাকে অন্যদিকে Non-Blocking Code sequencely program রান করে না ।
http://www.tutorialspoint.com/nodejs/nodejs_callbacks_concept.htm