सिंक करना, एक साथ काम नहीं करने वाली सुविधा, और प्रॉमिस

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

अपने फ़ंक्शन के लाइफ़साइकल को मैनेज करने के लिए, सुझाए गए इन तरीकों का इस्तेमाल करें:

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

JavaScript वादों के साथ एसिंक्रोनस कोड को आसान बनाएं

प्रॉमिस, एसिंक्रोनस कोड के लिए कॉलबैक का एक आधुनिक विकल्प है. वादा एक कार्रवाई और उसके आने वाले समय में मिलने वाली वैल्यू को दिखाता है. इसकी मदद से, सिंक्रोनस कोड में आज़माने/कैच करने जैसी गड़बड़ियों को लागू करेगा. आप Firebase पर Firebase SDK टूल का इस्तेमाल करके वादा करना) ब्लॉग, और सामान्य रूप से वादों के साथ एमडीएन.

प्रॉमिस, फ़ंक्शन के साथ कैसे काम करता है

जब किसी फ़ंक्शन में JavaScript प्रॉमिस दिखाया जाता है, तो वह फ़ंक्शन तब तक चलता रहता है, जब तक कि प्रॉमिस हल नहीं हो जाती या उसे अस्वीकार नहीं कर दिया जाता. यह बताने के लिए कि फ़ंक्शन ने अपना काम सफलतापूर्वक पूरा कर लिया है, तो प्रॉमिस रिज़ॉल्व होना चाहिए. यहां की यात्रा पर हूं अगर कोई गड़बड़ी दिखती है, तो प्रॉमिस अस्वीकार कर दिया जाएगा. इसका मतलब है कि आपको सिर्फ़ उन गड़बड़ियों को ठीक कर सकता है जिन पर आपको कार्रवाई करनी है.

नीचे दिया गया कोड, Firebase रीयल टाइम डेटाबेस 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!');
  });
});

कॉन्टेक्स्ट से जुड़े उदाहरण

हमारे ज़्यादातर क्लाउड फ़ंक्शन कोड सैंपल उचित काम बंद करने के उदाहरण शामिल करें. यहां कुछ उदाहरण दिए गए हैं जिनसे पता चलता है कि सामान्य मामले: