কম্পিউটার

জাভাস্ক্রিপ্টে একটি অ্যাসিঙ্ক্রোনাস কল থেকে কীভাবে প্রতিক্রিয়া ফেরানো যায়?


জাভাস্ক্রিপ্টে একটি অ্যাসিঙ্ক্রোনাস কল থেকে প্রতিক্রিয়া ফেরত দেওয়ার একাধিক উপায় রয়েছে। আসুন প্রথমে সমস্যাটি বুঝতে পারি। বলুন আপনার foo নামক একটি ফাংশন আছে যা অ্যাসিঙ্ক্রোনাস এবং কিছু সময় পরে ডেটা দেবে। এটি 2 উপায়ে এটি করতে পারে। এটি হয় একটি কলব্যাক গ্রহণ করতে পারে যা এটি কল করবে যখন এটি ডেটা সহ কার্যকর করার জন্য প্রস্তুত হবে৷ অথবা এটি একটি প্রতিশ্রুতি ফিরিয়ে দিতে পারে৷

উদাহরণস্বরূপ, সেটটাইমআউট ফাংশন একটি কলব্যাক গ্রহণ করে এবং একটি নির্দিষ্ট সময়ের পরে এটি কার্যকর করে। তাই বলি যে আপনি প্রথম পদ্ধতিতে যান, তারপর আপনি সেটটাইমআউটে ফাংশনটি পাস করতে পারেন।

উদাহরণ

function myFunc(cb) {
   setTimeout(() => cb(100), 1000);
}
myFunc((a) => console.log(a))

আউটপুট

100

এটি একটি কলব্যাক সহ সেটটাইমআউট ফাংশনকে কল করবে যা 1000 ms পরে কার্যকর হবে৷ যখন সেই ফাংশনটি কার্যকর করা হয়, এটি সেটটাইমআউটের কলব্যাক থেকে ফিরে আসা মানের সাথে পাস করা কলব্যাককে(cb) কল করবে৷

প্রতিশ্রুতি ব্যবহার করে

আপনি প্রতিশ্রুতি ব্যবহার করে এটি করতে পারেন। আপনার অ্যাসিঙ্ক ফাংশনকে একটি প্রতিশ্রুতি দিয়ে মোড়ানো এবং ফাংশনের রিটার্ন মান দিয়ে এই প্রতিশ্রুতির সমাধান করুন। আপনি তারপরের পদ্ধতিটি চেইন করতে পারেন এবং অ্যাসিঙ্ক ফাংশন থেকে প্রত্যাবর্তিত মান ব্যবহার করতে এটিকে একটি কলব্যাক পাস করতে পারেন৷

,

উদাহরণ

new Promise(resolve => setTimeout(() => resolve(100), 1000))
   .then(console.log)

আউটপুট

100

  1. কিভাবে জাভাস্ক্রিপ্ট একটি ফাংশন কল?

  2. ক্লিকে একটি জাভাস্ক্রিপ্ট ফাংশন কিভাবে কল করবেন?

  3. কিভাবে একটি জাভাস্ক্রিপ্ট ফাংশন থেকে একটি বস্তু ফেরত?

  4. JavaScript Outsider ফাংশন কল এবং ফলাফল ফেরত