কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে অ্যাসিনক্রোনাস কল থেকে রেসপন্স রিটার্ন করা


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

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

উদাহরণ

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

আউটপুট

100

এটি setTimeout ফাংশনকে একটি কলব্যাকসহ কল করবে যা ১০০০ ms পর এক্সিকিউট হবে। যখন সেই ফাংশন এক্সিকিউট হবে, তবে এটি পাস করা কলব্যাক (cb) কে setTimeout-এর কলব্যাক থেকে রিটার্ন করা ভ্যালুসহ কল করবে।

প্রমিস ব্যবহার করে

আপনি প্রমিস দিয়েও এটি করতে পারেন। আপনার অ্যাসিনক্রোনাস ফাংশনকে একটি প্রমিস দিয়ে র‍্যাপ করুন এবং এই প্রমিসকে ফাংশনের রিটার্ন ভ্যালু দিয়ে রেজলভ করুন। তারপর then মেথড চেইন করে একটি কলব্যাক পাস করুন যেটি অ্যাসিনক্রোনাস ফাংশন থেকে রিটার্ন করা ভ্যালু ব্যবহার করবে।

,

উদাহরণ

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

আউটপুট

 100

  1. জাভাস্ক্রিপ্টে ফাংশন কল করার পদ্ধতি

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

  3. জাভাস্ক্রিপ্ট ফাংশন থেকে অবজেক্ট রিটার্ন করা

  4. জাভাস্ক্রিপ্টে বাইরের ফাংশন কল করে ফলাফল রিটার্ন করুন