API reference@evolu/commonSchedule › recurs

function recurs(n: Int0To100OrNonNegativeInt): Schedule<number>;

Defined in: packages/common/src/Schedule.ts:230

A schedule that recurs a fixed number of times.

Convenience for take(n)(forever). Outputs the current repetition count (0, 1, 2, ..., n-1).

n uses Int0To100OrNonNegativeInt: pass 0 to 100 as a literal, or a validated NonNegativeInt for larger or dynamic values.

Limiting recurrence count

import {
  assertErr,
  assertOk,
  done,
  recurs,
  testCreateDeps,
} from "@evolu/common";

// Retry up to 3 times (4 total attempts including the initial operation).
const retry = recurs(3);
const step = retry(testCreateDeps());
assertOk(step(undefined), [0, 0]);
step(undefined);
step(undefined);
assertErr(step(undefined), done());