Hyperlinkv0.8.0-beta.28

Channel

Channel.fromIteratorconsteffect/Channel.ts:639
<A, L>(iterator: LazyArg<Iterator<A, L>>): Channel<A, never, L>

Creates a Channel from an iterator.

Example (Creating channels from iterators)

import { Channel } from "effect"

const numbers = [1, 2, 3, 4, 5]
const channel = Channel.fromIterator(() => numbers[Symbol.iterator]())
// Emits: 1, 2, 3, 4, 5
constructors
Source effect/Channel.ts:63910 lines
export const fromIterator = <A, L>(iterator: LazyArg<Iterator<A, L>>): Channel<A, never, L> =>
  fromPull(
    Effect.sync(() => {
      const iter = iterator()
      return Effect.suspend(() => {
        const state = iter.next()
        return state.done ? Cause.done(state.value) : Effect.succeed(state.value)
      })
    })
  )
Referenced by 1 symbols