Skip to content
Effect 4.0 is here. One ecosystem. Zero dependencies.

ExecutionStrategy

11 exports Since v2.0.0 Source

Constructors

Since v2.0.0

Execute effects in parallel.

Signature

declare const parallel: ExecutionStrategy

Execute effects in parallel, up to the specified number of concurrent fibers.

Signature

declare const parallelN: (parallelism: number) => ExecutionStrategy

Execute effects sequentially.

Signature

declare const sequential: ExecutionStrategy

Folding

Since v2.0.0

Folds over the specified ExecutionStrategy using the provided case functions.

Signature

declare const match: {
<A>(options: {
readonly onParallel: LazyArg<A>;
readonly onParallelN: (n: number) => A;
readonly onSequential: LazyArg<A>;
}): (self: ExecutionStrategy) => A;
<A>(self: ExecutionStrategy, options: {
readonly onParallel: LazyArg<A>;
readonly onParallelN: (n: number) => A;
readonly onSequential: LazyArg<A>;
}): A;
}

Models

Describes a strategy for evaluating multiple effects, potentially in parallel.

There are 3 possible execution strategies: Sequential, Parallel, ParallelN.

Signature

type ExecutionStrategy = Sequential | Parallel | ParallelN

Parallel

interface
Since v2.0.0

Execute effects in parallel.

Signature

interface Parallel {
readonly _tag: "Parallel";
}

ParallelN

interface
Since v2.0.0

Execute effects in parallel, up to the specified number of concurrent fibers.

Signature

interface ParallelN {
readonly _tag: "ParallelN";
readonly parallelism: number;
}

Sequential

interface
Since v2.0.0

Execute effects sequentially.

Signature

interface Sequential {
readonly _tag: "Sequential";
}

Refinements

Returns true if the specified ExecutionStrategy is an instance of Sequential, false otherwise.

Signature

declare const isParallel: (self: ExecutionStrategy) => self is Parallel

Returns true if the specified ExecutionStrategy is an instance of Sequential, false otherwise.

Signature

declare const isParallelN: (self: ExecutionStrategy) => self is ParallelN

Returns true if the specified ExecutionStrategy is an instance of Sequential, false otherwise.

Signature

declare const isSequential: (self: ExecutionStrategy) => self is Sequential