Catch up on everthing we announced at this year's Firebase Summit. Learn more

همگام سازی ، همگام سازی و وعده ها

مدیریت چرخه عمر یک تابع برای اطمینان از عملکرد صحیح آن بسیار مهم است. با خاتمه صحیح توابع ، می توانید از بارهای اضافی ناشی از عملکردهایی که بیش از حد طولانی اجرا می شوند یا حلقه بی نهایت دارند جلوگیری کنید. همچنین ، می توانید مطمئن شوید که نمونه عملکردهای ابری که عملکرد شما را اجرا می کند ، قبل از اینکه عملکرد شما با موفقیت به وضعیت یا حالت خاتمه خود برسد ، خاموش نمی شود.

از این روشهای توصیه شده برای مدیریت چرخه عمر عملکردهای خود استفاده کنید:

  • توابع حل و فصل است که انجام پردازش ناهمزمان (همچنین به عنوان "از توابع پس زمینه" شناخته می شود) با بازگرداندن وعده جاوا اسکریپت .
  • خاتمه دادن توابع HTTP با res.redirect() ، res.send() ، و یا res.end() .
  • خاتمه دادن یک تابع همزمان با return; بیانیه.

کد ناهمزمان را با وعده های جاوا اسکریپت ساده کنید

وعده ها جایگزینی مدرن برای فراخوانی کد ناهمزمان هستند. وعده نشان دهنده یک عملیات است و ارزش آینده آن ممکن است بازگردد. همچنین به شما امکان می دهد خطاهای مشابه try/catch را در کد همزمان منتشر کنید. شما می توانید در مورد وعده در فایربیس SDK در خواندن فایربیس وبلاگ ، و وعده به طور کلی در MDN .

چگونه وعده ها با توابع کار می کنند

هنگامی که یک وعده جاوا اسکریپت را به یک تابع برمی گردانید ، آن تابع تا زمان حل یا رد وعده ادامه می یابد. برای نشان دادن اینکه یک تابع کار خود را با موفقیت به پایان رسانده است ، وعده باید برطرف شود. برای نشان دادن خطا ، وعده باید رد شود. این بدان معناست که شما فقط باید خطاهایی را که می خواهید مدیریت کنید.

کد زیر را طول می کشد یک پایگاه فایربیس بیدرنگ 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!');
  });
});

مثالها در زمینه

بسیاری از توابع ابر ما نمونه کد شامل نمونه هایی از عملکرد ختم مناسب. در اینجا چند مورد وجود دارد که موارد معمولی را نشان می دهد: