সিঙ্ক, এসিঙ্ক ও প্রমিস

ফাংশনটি যাতে সঠিকভাবে কাজ করে তা নিশ্চিত করতে ফাংশনের লাইফসাইকেল ম্যানেজ করা গুরুত্বপূর্ণ। ফাংশন সঠিকভাবে বন্ধ করার মাধ্যমে, আপনি অতিরিক্ত চার্জ এড়াতে পারবেন যেসব ফাংশন অনেকক্ষণ ধরে চলে বা অসীম লুপে চলে। এছাড়াও, আপনি নিশ্চিত করতে পারেন যে আপনার ফাংশনটি তার সমাপ্তির শর্ত বা অবস্থায় সফলভাবে পৌঁছানোর আগে আপনার ফাংশন চালানো Cloud Functions ইনস্ট্যান্সটি বন্ধ না হয়।

আপনার ফাংশনের লাইফসাইকেল ম্যানেজ করতে এইসব সাজেস্ট করা পদ্ধতি ব্যবহার করুন:

  • JavaScript প্রমিস রিটার্ন করার মাধ্যমে অ্যাসিঙ্ক্রোনাস প্রসেসিং (এছাড়াও "ব্যাকগ্রাউন্ড ফাংশন" নামে পরিচিত) করে এমন ফাংশন সমাধান করুন।
  • res.redirect(), res.send() বা res.end()-এর মাধ্যমে HTTP ফাংশন বন্ধ করুন।
  • return; স্টেটমেন্টের মাধ্যমে একটি সিঙ্ক্রোনাস ফাংশন বন্ধ করুন।

জাভাস্ক্রিপ্ট প্রমিজের সাহায্যে অ্যাসিঙ্ক্রোনাস কোডকে সহজে উপস্থাপন করো

অ্যাসিঙ্ক্রোনাস কোডের জন্য কলব্যাকের একটি আধুনিক বিকল্প হল প্রমিস। একটি প্রমিস একটি অপারেশন এবং ভবিষ্যতে এটি যে মান ফেরত দিতে পারে তা উপস্থাপন করে। এছাড়াও, এটি আপনাকে সিঙ্ক্রোনাস কোডে try/catch-এর মতো সমস্যা প্রোপাগেট করতে দেয়। আপনি Firebase ব্লগ থেকে Firebase SDK-তে প্রমিস সম্পর্কে এবং MDN থেকে সাধারণভাবে প্রমিস সম্পর্কে পড়তে পারবেন।

ফাংশনের সাথে প্রমিস কীভাবে কাজ করে

আপনি কোনও ফাংশনে জাভাস্ক্রিপ্ট প্রমিস রিটার্ন করলে, সেই ফাংশন প্রমিস সমাধান বা বাতিল না হওয়া পর্যন্ত চলতে থাকে। কোনও ফাংশন তার কাজ সফলভাবে সম্পূর্ণ করেছে তা বোঝাতে, প্রমিসটি রিজলভ করতে হবে। কোনও সমস্যা হয়েছে তা বোঝাতে, প্রমিস বাতিল করতে হবে। এর অর্থ হল, আপনি শুধুমাত্র সেইসব সমস্যার সমাধান করতে পারবেন যেগুলি আপনি করতে চান।

নিম্নলিখিত কোডটি একটি Firebase Realtime Database ref নেয় এবং এর ভ্যালু "world!"-এ সেট করে। set-এর ফলাফল রিটার্ন করার মাধ্যমে, আপনার ফাংশনটি ডেটাবেসে স্ট্রিং লেখার অ্যাসিঙ্ক্রোনাস কাজ সম্পূর্ণ না হওয়া পর্যন্ত চলতে থাকবে:

// Always change the value of "/hello" to "world!"
exports.hello = functions.database.ref('/hello').onWrite(event => {
  // set() returns a promise. We keep the function alive by returning it.
  return event.data.ref.set('world!').then(() => {
    console.log('Write succeeded!');
  });
});

প্রসঙ্গ অনুযায়ী উদাহরণ

আমাদের বেশিরভাগ Cloud Functions কোড স্যাম্পেলে সঠিক ফাংশন সমাপ্তির উদাহরণ অন্তর্ভুক্ত থাকে। এখানে কিছু উদাহরণ দেওয়া হল যা সাধারণ কেস দেখায়: