samples-js/functions/continueAsNewCounter.js (14 lines of code) (raw):
const df = require("durable-functions");
const { DateTime } = require("luxon");
df.app.orchestration("continueAsNewCounter", function* (context) {
let currentValue = context.df.getInput() || 0;
context.log(`Value is ${currentValue}`);
currentValue++;
const wait = DateTime.fromJSDate(context.df.currentUtcDateTime).plus({ seconds: 30 });
context.log("Counting up at" + wait.toString());
yield context.df.createTimer(wait.toJSDate());
if (currentValue < 10) {
context.df.continueAsNew(currentValue);
}
return currentValue;
});