Promise অবজেক্ট একটি অ্যাসিনক্রোনাস অপারেশনের نهایی সমাপ্তি (বা ব্যর্থতা) এবং এর ফলাফল মান উপস্থাপন করে। Async await ফাংশন এবং অপারেটর প্রমিসের ওপর কাজ করে।
Async/await ফাংশন আমাদের সম্পূর্ণ সিনক্রোনাস-দেখানো কোড লিখতে সাহায্য করে যখন পিচনে অ্যাসিনক্রোনাস টাস্ক চলছে।
উদাহরণস্বরূপ, ধরুন আমাদের একটি অ্যাসিনক্রোনাস ফাংশন আছে যা একটি প্রমিস রিটার্ন করে -
// ২ সেকেন্ড পর ১০০ রিটার্ন করে এমন প্রমিস function getHundred() { return new Promise(resolve => { setTimeout(() => { resolve(100); }, 2000); }); }আমরা এটি একটি ফাংশনে ব্যবহার করতে চাই, কিন্তু রিটার্ন ভ্যালুর জন্য অপেক্ষা করতে হবে। কলব্যাক ব্যবহার করে আমরা এটি নিচের মত করে করতে পারি -
function useGetHundred() { getHundred().then((value) => { console.log(value); }) }কিন্তু রিটার্ন করা ডেটা এক্সিকিউট করার জন্য আমাদের অনাবশ্যকভাবে একটি কলব্যাক তৈরি করতে হয়। আমরা async await ব্যবহার করে এই কোড সিম্প্লিফাই করতে পারি -
উদাহরণ
// একটি অ্যাসিনক্রোনাস ফাংশন ডিক্লেয়ার করুন। যখন এই ফাংশন কল হবে, এটি একটি প্রমিস রিটার্ন করবে // কিন্তু এই ফাংশনের ভিতরে যেকোনো অ্যাসিনক্রোনাস কল await কীওয়ার্ড দিয়ে সিনক্রোনাস করা যায় async function useGetHundredAsync() { // getHundred প্রমিস রিজলভ হওয়ার জন্য অপেক্ষা করুন তারপর এর ভ্যালু value-এ স্টোর করুন let value = await getHundred(); console.log(value) }আউটপুট
100