MCPcopy Create free account
hub / github.com/Effect-TS/effect / runtimePromise

Function runtimePromise

packages/effect/src/FiberHandle.ts:745–784  ·  view source on GitHub ↗
(self: FiberHandle<A, E>)

Source from the content-addressed store, hash-verified

743 * @since 3.13.0
744 */
745export const runtimePromise = <A, E>(self: FiberHandle<A, E>): <R = never>() => Effect.Effect<
746 <XE extends E, XA extends A>(
747 effect: Effect.Effect<XA, XE, R>,
748 options?:
749 | {
750 readonly signal?: AbortSignal | undefined
751 readonly scheduler?: Scheduler | undefined
752 readonly onlyIfMissing?: boolean | undefined
753 readonly propagateInterruption?: boolean | undefined
754 }
755 | undefined
756 ) => Promise<XA>,
757 never,
758 R
759> =>
760<R>() =>
761 Effect.map(
762 runtime(self)<R>(),
763 (runFork) =>
764 <XE extends E, XA extends A>(
765 effect: Effect.Effect<XA, XE, R>,
766 options?:
767 | {
768 readonly signal?: AbortSignal | undefined
769 readonly scheduler?: Scheduler | undefined
770 readonly onlyIfMissing?: boolean | undefined
771 readonly propagateInterruption?: boolean | undefined
772 }
773 | undefined
774 ): Promise<XA> =>
775 new Promise((resolve, reject) =>
776 runFork(effect, options).addObserver((exit) => {
777 if (Exit.isSuccess(exit)) {
778 resolve(exit.value)
779 } else {
780 reject(Cause.squash(exit.cause))
781 }
782 })
783 )
784 )
785
786/**
787 * Waits for the `FiberHandle` to fail or close.

Callers 1

makeRuntimePromiseFunction · 0.70

Calls 5

runForkFunction · 0.85
addObserverMethod · 0.80
runtimeFunction · 0.70
resolveFunction · 0.70
mapMethod · 0.45

Tested by

no test coverage detected