Hyperlinkv0.8.0-beta.28

FiberHandle

FiberHandle.awaitEmptyconsteffect/FiberHandle.ts:809
<A, E>(self: FiberHandle<A, E>): Effect.Effect<void, E>

Waits for the fiber in the FiberHandle to complete.

Example (Waiting for a fiber to complete)

import { Effect, FiberHandle } from "effect"

Effect.gen(function*() {
  const handle = yield* FiberHandle.make()

  // Start a long-running effect
  yield* FiberHandle.run(handle, Effect.sleep(1000))

  // Wait for the fiber to complete
  yield* FiberHandle.awaitEmpty(handle)

  console.log("Fiber completed")
})
combinators
export const awaitEmpty = <A, E>(self: FiberHandle<A, E>): Effect.Effect<void, E> =>
  Effect.suspend(() => {
    if (self.state._tag === "Closed" || self.state.fiber === undefined) {
      return Effect.void
    }
    return Fiber.await(self.state.fiber)
  })