কোনও ফাংশন সঠিকভাবে সমাধান করার জন্য এর জীবনচক্র পরিচালনা করা গুরুত্বপূর্ণ। ফাংশনগুলি সঠিকভাবে বন্ধ করে, আপনি খুব বেশি সময় ধরে চলমান বা অসীম লুপযুক্ত ফাংশন থেকে অতিরিক্ত চার্জ এড়াতে পারেন। এছাড়াও, আপনি নিশ্চিত করতে পারেন যে আপনার ফাংশনটি চালানো Cloud Functions ইনস্ট্যান্সটি আপনার ফাংশনটি সফলভাবে তার সমাপ্তি অবস্থা বা অবস্থায় পৌঁছানোর আগে বন্ধ না হয়ে যায়।
আপনার ফাংশনের জীবনচক্র পরিচালনা করতে এই প্রস্তাবিত পদ্ধতিগুলি ব্যবহার করুন:
- জাভাস্ক্রিপ্ট প্রতিশ্রুতি প্রদানের মাধ্যমে অ্যাসিঙ্ক্রোনাস প্রক্রিয়াকরণ ("ব্যাকগ্রাউন্ড ফাংশন" নামেও পরিচিত) সম্পাদনকারী ফাংশনগুলি সমাধান করুন।
-
res.redirect(),res.send(), অথবাres.end()দিয়ে HTTP ফাংশন বন্ধ করুন। - একটি
return;স্টেটমেন্ট দিয়ে একটি সিঙ্ক্রোনাস ফাংশন শেষ করুন।
জাভাস্ক্রিপ্ট প্রতিশ্রুতি দিয়ে অ্যাসিঙ্ক্রোনাস কোড সরলীকৃত করুন
অ্যাসিঙ্ক্রোনাস কোডের জন্য কলব্যাকের একটি আধুনিক বিকল্প হল প্রমিজ। একটি প্রমিজ একটি অপারেশন এবং ভবিষ্যতের মান যা এটি ফেরত দিতে পারে তা প্রতিনিধিত্ব করে। এটি আপনাকে সিঙ্ক্রোনাস কোডে ট্রাই/ক্যাচের মতো ত্রুটিগুলি প্রচার করতে দেয়। আপনি 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 কোড নমুনায় সঠিক ফাংশন সমাপ্তির উদাহরণ রয়েছে। এখানে কয়েকটি সাধারণ ঘটনা দেখানো হল:
- রিয়েলটাইম ডাটাবেস ট্রিগার : একটি HTTP ফাংশন যার পরে একটি পুনঃনির্দেশনা আসে
- ক্লাউড স্টোরেজ ট্রিগার : একটি স্টোরেজ ডাউনলোড এবং
then - রিয়েলটাইম ডেটাবেসে ওয়েবহুক লেখা : একটি "
then" ধারার ভিতরে একটি ত্রুটি - অব্যবহৃত অ্যাকাউন্টগুলি পর্যায়ক্রমে মুছে ফেলুন : একটি প্রত্যাখ্যাত প্রতিশ্রুতি