Package: effect
Module: Effect
Runs an effect repeatedly according to a schedule that is initialized with a specific schedule input.
Details
initial is passed to the schedule before the first execution, not to the
effect itself. After each successful execution, the effect’s success value is
fed back into the schedule to decide whether to continue. The returned effect
succeeds with the schedule output when the schedule completes and fails if
the effect or schedule fails.
Example (Scheduling from an initial value)
import { Console, Effect, Schedule } from "effect"
const task = (input: number) =>
Effect.gen(function*() {
yield* Console.log(`Processing: ${input}`)
return input + 1
})
// Start with 0, repeat 3 times
const program = Effect.scheduleFrom(
task(0),
0,
Schedule.recurs(2)
)
Effect.runPromise(program).then(console.log)
// Returns the schedule count
Signature
declare const scheduleFrom: { <Input, Output, Error, Env>(initial: Input, schedule: Schedule<Output, Input, Error, Env>): <E, R>(self: Effect<Input, E, R>) => Effect<Output, E, R | Env>; <Input, E, R, Output, Error, Env>(self: Effect<Input, E, R>, initial: Input, schedule: Schedule<Output, Input, Error, Env>): Effect<Output, E, R | Env>; }
Since v2.0.0