Hyperlinkv0.8.0-beta.28

Stream

Stream.repeatconsteffect/Stream.ts:2687
<B, E2, R2>(
  schedule:
    | Schedule.Schedule<B, void, E2, R2>
    | ((
        $: <SO, SE, SR>(
          _: Schedule.Schedule<SO, void, SE, SR>
        ) => Schedule.Schedule<SO, void, SE, SR>
      ) => Schedule.Schedule<B, void, E2, R2>)
): <A, E, R>(self: Stream<A, E, R>) => Stream<A, E | E2, R2 | R>
<A, E, R, B, E2, R2>(
  self: Stream<A, E, R>,
  schedule:
    | Schedule.Schedule<B, void, E2, R2>
    | ((
        $: <SO, SE, SR>(
          _: Schedule.Schedule<SO, void, SE, SR>
        ) => Schedule.Schedule<SO, void, SE, SR>
      ) => Schedule.Schedule<B, void, E2, R2>)
): Stream<A, E | E2, R | R2>

Repeats the entire stream according to the provided schedule.

Example (Repeating a stream on a schedule)

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

const program = Effect.gen(function* () {
  const result = yield* Stream.make(1).pipe(
    Stream.repeat(Schedule.recurs(4)),
    Stream.runCollect
  )

  yield* Console.log(result)
})

Effect.runPromise(program)
// Output: [ 1, 1, 1, 1, 1 ]
sequencing
Source effect/Stream.ts:268724 lines
export const repeat: {
  <B, E2, R2>(
    schedule:
      | Schedule.Schedule<B, void, E2, R2>
      | ((
        $: <SO, SE, SR>(_: Schedule.Schedule<SO, void, SE, SR>) => Schedule.Schedule<SO, void, SE, SR>
      ) => Schedule.Schedule<B, void, E2, R2>)
  ): <A, E, R>(self: Stream<A, E, R>) => Stream<A, E | E2, R2 | R>
  <A, E, R, B, E2, R2>(
    self: Stream<A, E, R>,
    schedule:
      | Schedule.Schedule<B, void, E2, R2>
      | ((
        $: <SO, SE, SR>(_: Schedule.Schedule<SO, void, SE, SR>) => Schedule.Schedule<SO, void, SE, SR>
      ) => Schedule.Schedule<B, void, E2, R2>)
  ): Stream<A, E | E2, R | R2>
} = dual(2, <A, E, R, B, E2, R2>(
  self: Stream<A, E, R>,
  schedule:
    | Schedule.Schedule<B, void, E2, R2>
    | ((
      $: <SO, SE, SR>(_: Schedule.Schedule<SO, void, SE, SR>) => Schedule.Schedule<SO, void, SE, SR>
    ) => Schedule.Schedule<B, void, E2, R2>)
): Stream<A, E | E2, R | R2> => fromChannel(Channel.repeat(self.channel, schedule)))