CoffeeScript এ Asynchronous কোড লেখা

Asynchronous Programming এবং Promises - কফিস্ক্রিপ্ট (CoffeeScript) - Web Development

251

CoffeeScript, JavaScript এর মতোই, অ্যাসিঙ্ক্রোনাস কোড পরিচালনার জন্য বিভিন্ন পদ্ধতি সমর্থন করে। এটি অ্যাসিঙ্ক্রোনাস প্রোগ্রামিং সহজ করে তোলে, যা দীর্ঘ-running অপারেশন যেমন API কল, ডাটাবেজ থেকে ডেটা পড়া, বা ফাইল সিস্টেম অপারেশনের জন্য ব্যবহৃত হয়। CoffeeScript-এ অ্যাসিঙ্ক্রোনাস কোড লেখা অনেকটাই JavaScript-এর মতো, তবে এটি আরও সংক্ষিপ্ত এবং সহজলভ্য।


১. কলব্যাক (Callback) ফাংশন

অ্যাসিঙ্ক্রোনাস কাজের জন্য একটি সাধারণ পদ্ধতি হল কলব্যাক ফাংশন। একটি ফাংশন চলতে থাকা অবস্থায় অন্য ফাংশন কল করা হয় এবং তার কাজ শেষ হওয়ার পর কলব্যাক ফাংশনটি কার্যকর হয়।

উদাহরণ: কলব্যাক ব্যবহার

fs = require 'fs'

fs.readFile 'file.txt', 'utf8', (err, data) ->
  if err
    console.log "Error reading file: #{err}"
  else
    console.log "File content: #{data}"

ব্যাখ্যা:

  • এখানে fs.readFile একটি অ্যাসিঙ্ক্রোনাস ফাংশন, এবং এটি একটি কলব্যাক ফাংশন গ্রহণ করে। ফাইলটি পড়া হলে, কলব্যাক ফাংশনটি data এবং err আর্গুমেন্ট সহ চলে আসে।
  • err যদি null হয়, তাহলে ফাইলটি সফলভাবে পড়া হয়েছে, অন্যথায় ত্রুটি ঘটেছে।

২. Promises

Promises একটি আধুনিক পদ্ধতি যা অ্যাসিঙ্ক্রোনাস কাজের জন্য ব্যবহৃত হয়। এটি একটি resolve বা reject কন্ডিশন প্রদান করে, যাতে আপনি পরবর্তী কোড নির্ধারণ করতে পারেন।

উদাহরণ: Promise ব্যবহার

fetchData = ->
  new Promise (resolve, reject) ->
    setTimeout ->
      data = "Some data"
      resolve data
    , 1000

fetchData().then (data) ->
  console.log "Received data: #{data}"

ব্যাখ্যা:

  • fetchData একটি Promise রিটার্ন করে, যা 1 সেকেন্ড পর resolve করে "Some data" পাঠায়।
  • .then() ব্যবহার করে আমরা Promise-এর রেজাল্ট পেতে পারি, যা অ্যাসিঙ্ক্রোনাস কাজের পরবর্তী স্টেপ হিসেবে কাজ করে।

৩. Async/Await

async/await হল একটি আধুনিক পদ্ধতি যা Promise-কে আরও পরিষ্কারভাবে ব্যবহার করতে সাহায্য করে। এটি কোডের রিডেবিলিটি এবং স্ট্রাকচার উন্নত করে। async ফাংশন একটি Promise রিটার্ন করে, এবং await কিওয়ার্ড Promise এর রেজাল্ট পাওয়ার আগে কোডটি অপেক্ষা করতে নির্দেশ দেয়।

উদাহরণ: Async/Await ব্যবহার

fetchData = ->
  new Promise (resolve, reject) ->
    setTimeout ->
      data = "Fetched data"
      resolve data
    , 1000

getData = async ->
  data = await fetchData()
  console.log "Data received: #{data}"

getData()

ব্যাখ্যা:

  • fetchData একটি Promise রিটার্ন করে, এবং await ব্যবহারের মাধ্যমে আমরা এই Promise এর রেজাল্ট পাই, যাতে কোড আরও সোজা এবং পরিষ্কার হয়।
  • getData একটি async ফাংশন, এবং await ব্যবহার করে এটি fetchData থেকে আসা ফলাফল পায় এবং এরপর কাজ চালিয়ে যায়।

৪. Error Handling (অ্যাসিঙ্ক্রোনাস কোডে ত্রুটি পরিচালনা)

অ্যাসিঙ্ক্রোনাস কোডে ত্রুটি পরিচালনার জন্য try/catch ব্লক বা Promise এর .catch() ব্যবহার করা যেতে পারে। async/await পদ্ধতিতে ত্রুটি ধরতে try/catch ব্যবহার করা সহজ।

উদাহরণ: async/await-এ ত্রুটি পরিচালনা

fetchData = ->
  new Promise (resolve, reject) ->
    setTimeout ->
      err = true
      if err
        reject "Error occurred!"
      else
        resolve "Fetched data"
    , 1000

getData = async ->
  try
    data = await fetchData()
    console.log "Data received: #{data}"
  catch err
    console.log "Caught an error: #{err}"

getData()

ব্যাখ্যা:

  • এখানে fetchData Promise ব্যবহার করে এবং যদি কিছু সমস্যা হয় তবে reject করে ত্রুটি পাঠায়।
  • getData ফাংশনে try/catch ব্যবহার করা হয়েছে যাতে Promise থেকে আসা ত্রুটি ধরা যায় এবং হ্যান্ডেল করা যায়।

৫. Asynchronous Loops

CoffeeScript-এ অ্যাসিঙ্ক্রোনাস লুপও ব্যবহার করা যেতে পারে, যেমন যখন আপনাকে একাধিক অ্যাসিঙ্ক্রোনাস অপারেশন একে একে চালাতে হয়।

উদাহরণ: অ্যাসিঙ্ক্রোনাস লুপ

processData = (data) ->
  new Promise (resolve) ->
    setTimeout ->
      resolve "Processed #{data}"
    , 1000

processAll = async ->
  dataList = ['item1', 'item2', 'item3']
  for data in dataList
    result = await processData(data)
    console.log result

processAll()

ব্যাখ্যা:

  • processAll ফাংশনটি একটি অ্যাসিঙ্ক্রোনাস লুপ যা প্রতিটি আইটেমের জন্য processData ফাংশনকে await করে চালায়।
  • প্রতিটি প্রক্রিয়াকরণ শেষে ফলাফল প্রিন্ট করা হয়।

সারাংশ

CoffeeScript-এ অ্যাসিঙ্ক্রোনাস কোড লেখার জন্য আপনি নিচের পদ্ধতিগুলি ব্যবহার করতে পারেন:

  1. কলব্যাক ফাংশন - অ্যাসিঙ্ক্রোনাস কোডের জন্য একটি সাধারণ পদ্ধতি।
  2. Promises - আধুনিক এবং পরিষ্কার পদ্ধতি, যা অ্যাসিঙ্ক্রোনাস কাজ সহজ করে তোলে।
  3. Async/Await - Promise এর আরও পরিষ্কার এবং কার্যকর ব্যবহার, যা কোডকে সহজ এবং রিডেবল করে তোলে।
  4. Error Handling - try/catch বা .catch() ব্যবহার করে ত্রুটি পরিচালনা করা।
  5. Asynchronous Loops - একাধিক অ্যাসিঙ্ক্রোনাস অপারেশন একে একে চালানো।

CoffeeScript-এ অ্যাসিঙ্ক্রোনাস কোড ব্যবহারের মাধ্যমে আপনি আপনার প্রোগ্রামের পারফরম্যান্স উন্নত করতে পারবেন এবং অ্যাসিঙ্ক্রোনাস কাজগুলিকে আরও পরিষ্কারভাবে পরিচালনা করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...