API reference › @evolu/common › Schedule › take
function take(
n: Int0To100OrNonNegativeInt,
): <Output, Input>(
schedule: Schedule<Output, Input>,
) => Schedule<Output, Input>;
Defined in: packages/common/src/Schedule.ts:781
Limits a schedule to a maximum number of steps.
After n steps, returns Err(Done<void>) (stop).
n uses Int0To100OrNonNegativeInt: pass 0 to 100 as a literal, or
a validated NonNegativeInt for larger or dynamic values.
Limiting a schedule
import {
assertErr,
done,
exponential,
take,
testCreateDeps,
} from "@evolu/common";
// Three exponential retries, then Done.
const step = take(3)(exponential("100ms"))(testCreateDeps());
step(undefined);
step(undefined);
step(undefined);
assertErr(step(undefined), done());