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

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

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

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

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

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

نحوه عملکرد وعده ها با توابع

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

کد زیر یک ref Firebase Realtime Database می گیرد و مقدار آن را روی "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!');
  });
});

نمونه هایی در زمینه

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