Async/Await একটি আধুনিক JavaScript ফিচার যা অ্যাসিঙ্ক্রোনাস কোড লেখা সহজ করে। CoffeeScript-এ এই ফিচারটি ব্যবহার করার মাধ্যমে আপনি অ্যাসিঙ্ক্রোনাস কোড আরও পরিষ্কার এবং সিনক্রোনাস কোডের মতো লেখা সম্ভব হবে। CoffeeScript-এ async এবং await ব্যবহার করতে JavaScript এর মতই সিনট্যাক্স প্রয়োগ করা হয়, তবে CoffeeScript এর সিনট্যাক্স আরও সংক্ষিপ্ত এবং পরিষ্কার।
Async/Await কী?
async: ফাংশনকে অ্যাসিঙ্ক্রোনাস ফাংশনে রূপান্তরিত করতে ব্যবহৃত হয়। এটি নিশ্চিত করে যে ফাংশনটি একটিPromiseরিটার্ন করবে।await: এটিasyncফাংশনের মধ্যে ব্যবহৃত হয় এবং একটিPromiseএর ফলাফল পাওয়া না হওয়া পর্যন্ত বাকি কোডের কার্যকারিতা থামিয়ে দেয়।
CoffeeScript-এ Async/Await ব্যবহার
CoffeeScript-এ async এবং await ব্যবহার করার পদ্ধতি JavaScript-এর মতোই, তবে CoffeeScript-এর সিনট্যাক্সে কোড আরও সংক্ষিপ্ত হয়।
১. Async ফাংশন ঘোষণা
CoffeeScript-এ async ফাংশন ঘোষণা করার জন্য সোজা async কীওয়ার্ড ব্যবহার করা হয়।
async fetchData = ->
console.log "Fetching data..."
return "Data fetched"
এই ফাংশনটি একটি Promise রিটার্ন করবে।
২. Await ব্যবহার
await কে async ফাংশনের মধ্যে ব্যবহার করতে হয়, এবং এটি একটি Promise এর রেজাল্ট পাওয়ার জন্য অপেক্ষা করবে।
async getData = ->
result = await fetchData()
console.log result # আউটপুট: Data fetched
এখানে, await fetchData() ফাংশনের Promise রেজাল্ট পাওয়ার জন্য অপেক্ষা করবে এবং পরে সেই রেজাল্ট result-এ স্টোর হবে।
৩. Error handling (Try/Catch)
async ফাংশনের মধ্যে try/catch ব্যবহার করে আপনি ভুল হ্যান্ডলিং করতে পারেন। যদি কোনো Promise ত্রুটি দেয়, catch ব্লক তা ধরতে সাহায্য করে।
async fetchDataWithErrorHandling = ->
try
result = await fetchData()
console.log result
catch error
console.log "Error occurred: #{error.message}"
উদাহরণ: CoffeeScript-এ Async/Await ব্যবহার
ধরা যাক, আপনার কাছে একটি API কল রয়েছে যা কিছু ডেটা ফেচ করবে। আপনি async এবং await ব্যবহার করে সেই ডেটা ফেচ করতে পারেন।
কোড:
# ফাংশন যা API কল সিমুলেট করবে
async fetchDataFromAPI = ->
console.log "Fetching data from API..."
# একটি Promise রিটার্ন করা হচ্ছে
return new Promise (resolve, reject) ->
setTimeout ->
resolve "Data from API fetched successfully"
, 2000
# প্রধান ফাংশন
async main = ->
data = await fetchDataFromAPI()
console.log data # আউটপুট: Data from API fetched successfully
main()
ব্যাখ্যা:
fetchDataFromAPIএকটিasyncফাংশন, যা ২ সেকেন্ড পরে ডেটা ফেচ করে একটিPromiseরিটার্ন করে।mainফাংশনawaitব্যবহার করেfetchDataFromAPI()এর রেজাল্ট পাওয়ার জন্য অপেক্ষা করে এবং তারপর সেটি কনসোলে প্রিন্ট করে।
আউটপুট:
Fetching data from API...
Data from API fetched successfully
CoffeeScript-এ Async/Await এর সুবিধা
- ক্লিন কোড:
asyncএবংawaitব্যবহার করার মাধ্যমে অ্যাসিঙ্ক্রোনাস কোডকে সিনক্রোনাস কোডের মতো লেখা সম্ভব হয়, যা কোডকে আরও পরিষ্কার এবং পড়তে সহজ করে। - প্রমিজ চেইনিং এড়ানো:
async/awaitব্যবহারের মাধ্যমে প্রমিজ চেইনিং সমস্যা দূর হয় এবং কোড আরও সোজা হয়। - এরর হ্যান্ডলিং:
try/catchব্লকের মাধ্যমে অ্যাসিঙ্ক্রোনাস কোডে ত্রুটি হ্যান্ডলিং সহজ হয়। - অ্যাক্টিভ কোডিং স্টাইল: অ্যাসিঙ্ক্রোনাস অপারেশনগুলোর সময়কালে কোডের কার্যকারিতা থামানো, পুনরায় কোড চালানো সহজ হয়ে যায়।
সারাংশ
CoffeeScript-এ async এবং await ব্যবহার করা অনেকটা JavaScript-এর মতোই, তবে CoffeeScript এর সংক্ষিপ্ত সিনট্যাক্স কোড লেখাকে আরও সহজ করে তোলে। আপনি async ফাংশন ব্যবহার করে অ্যাসিঙ্ক্রোনাস অপারেশনগুলোকে সিনক্রোনাস স্টাইলে লিখতে পারেন এবং await ব্যবহার করে সেই অপারেশনের ফলাফল পাওয়া না হওয়া পর্যন্ত বাকি কোডের কার্যকারিতা থামিয়ে দিতে পারেন। এই পদ্ধতি কোডকে আরও পরিষ্কার এবং কার্যকরী করে তোলে।
Read more