Hyperlinkv0.8.0-beta.28

Stream

Stream.fromScheduleconsteffect/Stream.ts:1488
<O, E, R>(schedule: Schedule.Schedule<O, unknown, E, R>): Stream<O, E, R>

Creates a stream that emits each output of a schedule that does not require input, for as long as the schedule continues.

Example (Creating a stream from a schedule)

import { Console, Effect, Schedule, Stream } from "effect"

const program = Effect.gen(function*() {
  const schedule = Schedule.spaced("50 millis").pipe(
    Schedule.upTo({ times: 3 })
  )
  const stream = Stream.fromSchedule(schedule)
  const values = yield* Stream.runCollect(stream)
  yield* Console.log(values)
})

Effect.runPromise(program)
// Output: [ 0, 1, 2 ]
constructors
Source effect/Stream.ts:14887 lines
export const fromSchedule = <O, E, R>(schedule: Schedule.Schedule<O, unknown, E, R>): Stream<O, E, R> =>
  fromPull(
    Effect.map(
      Schedule.toStepWithSleep(schedule),
      (step) => Pull.catchDone(Effect.map(step(void 0), Arr.of), () => Cause.done())
    )
  )