#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…
}
Пожалуйста, знайте, что в вашем вопросе на самом деле недостаточно подробностей, чтобы правильно понять, что происходит в вашем приложении, подобном этому. Если вы не возражаете, пожалуйста, обновите свой вопрос, чтобы включить подробную информацию, например, что именно вы пытаетесь сделать и что при попытке вызвать функции и т. Д…