Как правильно поместить две кроны в методы?

#javascript #typescript #methods #cron

Вопрос:

Я застрял с проблемой, как правильно поместить эти две кроны в методы?

Пример1:

   module.exports = functions.pubsub
  .schedule("0 0 12 * *")
  .timeZone("")
  .onRun(async () => {
    const startDate = startOfDate();
    const endDate = endOfDate();
    const dateBefore = dateBeforeGameDay();
    let listGameOrders = await getGameOrdersForEmailing(startDate, endDate);
      return !finishedGameOrdersStatusIds.includes(order.GameStatus);
    });
    let rows = finishGameOrdersStatus
      .map(
        (id) =>
          `</td><td>${game.id}</td></tr>`
      )
 sentGameHtmlEmail(statusGameOrdersView);
  });
 

Пример2:

 const processGamerReminderEmail = async (gamerOrders: OrderData[]) => {
  const gamerId = firstOrder
    ? firstGameOrder.gamerId
      ? firstGameOrder.gamerId
      : ""
    : "";
  const gamerData = await (await gamer.doc(gamerId).get()).data();
  return await sentGameHtmlEmail(
    gamerReminderEmail
  );
};
module.exports = functions.pubsub
  .schedule("0 0 12 * *")
  .timeZone("")
  .onRun(async () => {
    const startDate = startOfDate();
    const endDate = endOfDate();
    const dateBefore = dateBeforeGameDay();
    const finalizedStatusDayBefore = [
    ];
    return await Promise.all(
      _.map(orderedByGamerId, (gameOrders: OrderData[]) => {
        return processGamerReminderEmail(gameOrders);
      })
    );
  });
 

И я не понимаю, как правильно писать методы

Я думал, что это должно выглядеть примерно так :

 newGameEmails(()==>{
exampleСron1(),
exampleCron2()})
 

Ответ №1:

Похоже, что вы на самом деле не возвращаете функцию из модулей cron. Вот так вы возвращаете результат всего functions.pubsub.schedule( … цепь.

module.exports должен возвращать функцию, например, так:

 module.exports = function exampleCron() {
    return functions.pubsub // and so on…
}
 

Пожалуйста, знайте, что в вашем вопросе на самом деле недостаточно подробностей, чтобы правильно понять, что происходит в вашем приложении, подобном этому. Если вы не возражаете, пожалуйста, обновите свой вопрос, чтобы включить подробную информацию, например, что именно вы пытаетесь сделать и что при попытке вызвать функции и т. Д…