Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

सिंक, एसिंक्स और वादे

यह सुनिश्चित करने के लिए कि यह ठीक से हल हो जाए, किसी फ़ंक्शन के जीवनचक्र को प्रबंधित करना महत्वपूर्ण है। कार्यों को सही ढंग से समाप्त करके, आप उन कार्यों से अत्यधिक शुल्क से बच सकते हैं जो बहुत लंबे समय तक चलते हैं या असीमित रूप से लूप करते हैं। इसके अलावा, आप यह सुनिश्चित कर सकते हैं कि आपके फ़ंक्शन को चलाने वाले क्लाउड फ़ंक्शंस इंस्टेंस आपके फ़ंक्शन के सफलतापूर्वक समाप्त होने की स्थिति या स्थिति तक पहुंचने से पहले बंद नहीं होते हैं।

अपने कार्यों के जीवनचक्र को प्रबंधित करने के लिए इन अनुशंसित तरीकों का उपयोग करें:

  • जावास्क्रिप्ट वादा वापस करके एसिंक्रोनस प्रोसेसिंग (जिसे "बैकग्राउंड फ़ंक्शंस" भी कहा जाता है) निष्पादित करने वाले कार्यों को हल करें।
  • res.redirect() , res.send() , या res.end() साथ HTTP फ़ंक्शन को समाप्त करें।
  • एक return; साथ एक तुल्यकालिक समारोह को समाप्त करें return; बयान।

जावास्क्रिप्ट वादों के साथ अतुल्यकालिक कोड को सरल बनाएं

वादे एसिंक्रोनस कोड के लिए कॉलबैक का एक आधुनिक विकल्प हैं। एक वादा एक ऑपरेशन और भविष्य के मूल्य का प्रतिनिधित्व करता है जो इसे वापस कर सकता है। यह आपको सिंक्रोनस कोड में कोशिश/पकड़ने जैसी त्रुटियों का प्रचार करने देता है। आप पर Firebase SDK में वादों के बारे में पढ़ सकते हैं Firebase ब्लॉग पर सामान्य रूप में, और वादों MDN

कार्यों के साथ वादे कैसे काम करते हैं

जब आप किसी फ़ंक्शन के लिए जावास्क्रिप्ट वादा वापस करते हैं, तो वह फ़ंक्शन तब तक चलता रहता है जब तक कि वादा हल या अस्वीकार नहीं किया जाता है। यह इंगित करने के लिए कि एक समारोह ने अपना काम सफलतापूर्वक पूरा कर लिया है, वादा हल किया जाना चाहिए। त्रुटि को इंगित करने के लिए, वादे को अस्वीकार कर दिया जाना चाहिए। इसका मतलब है कि आपको केवल उन त्रुटियों को संभालने की जरूरत है जो आप चाहते हैं।

निम्न कोड एक Firebase रीयलटाइम डेटाबेस ref लेता है और इसका मान "world!" सेट करता "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!');
  });
});

संदर्भ में उदाहरण

हमारे अधिकांश क्लाउड फ़ंक्शंस कोड नमूनों में उचित फ़ंक्शन समाप्ति के उदाहरण शामिल हैं। यहाँ कुछ ऐसे हैं जो विशिष्ट मामलों को प्रदर्शित करते हैं: