জাভাস্ক্রিপ্টে কলব্যাক সহ অ্যাসিঙ্ক্রোনাস কোড
ধরা যাক আমাদের কাছে একটি অ্যাসিঙ্ক্রোনাস ফাংশন আছে:
javascriptfunction make() {
setTimeout(function() {
console.log('1');
}, 3000);
}
ধরা যাক আমরা নিম্নলিখিতভাবে এই ফাংশনটি ব্যবহার করি:
javascriptmake();
console.log('2'); // প্রথমে এক্সিকিউট হবে
ধরা যাক আমরা এমন করতে চাই যে, ফাংশনের ভিতরের
অ্যাসিঙ্ক্রোনাস অপারেশন সম্পাদিত হওয়ার পরে
কনসোলে দ্বিতীয় আউটপুটটি কার্যকর হয়।
এটি করার জন্য ব্যবহৃত পদ্ধতিগুলির মধ্যে একটি
হল কলব্যাক ব্যবহার:
পরবর্তী কোডটিকে একটি Anonymous ফাংশনে মোড়ক করি
এবং make ফাংশনে একটি প্যারামিটার হিসেবে পাস করি:
javascriptmake(function() {
console.log('2');
});
অবশ্যই, এটি নিজে থেকে আমাদের সমস্যার সমাধান করবে না।
আমরা এখনই শুধুমাত্র এই চুক্তিটি করেছি: make ট্রিগার হওয়ার পরে কোড
এক্সিকিউট করতে চাইলে, সেই কোডটি
make কলটিতে একটি কলব্যাক হিসেবে পাস করুন।
make ফাংশনের কোডটি ঠিক করি, যাতে
এটি আমাদের চুক্তি অনুযায়ী কাজ করা শুরু করে:
javascriptfunction make(callback) {
setTimeout(function() {
console.log('1'); // কিছু অ্যাসিঙ্ক্রোনাস অপারেশন, একাধিকও হতে পারে
callback(); // তারপর আমাদের কলব্যাক
}, 3000);
}
Задание 1
বর্ণনা করুন, কোন ক্রমে সংখ্যাগুলি কনসোলে প্রদর্শিত হবে:
javascriptfunction make(callback) {
setTimeout(function() {
console.log('1');
callback();
}, 3000);
}
make(function() {
console.log('2');
console.log('3');
});