Package: effect
Module: Effect
Evaluates and runs each effect in the iterable, collecting only the successful results while discarding failures.
Details
This function function processes an iterable of effects and runs each one. If an effect is successful, its result is collected; if it fails, the result is discarded. This ensures that only successful outcomes are kept.
Options
The function also allows you to customize how the effects are handled by specifying options such as concurrency, batching, and how finalizers behave. These options provide flexibility in running the effects concurrently or adjusting other execution details.
Example
import { Effect } from "effect"
const tasks = [
Effect.succeed(1),
Effect.fail("Error 1"),
Effect.succeed(2),
Effect.fail("Error 2")
]
const program = Effect.gen(function*() {
const successfulResults = yield* Effect.allSuccesses(tasks)
console.log(successfulResults)
})
Effect.runFork(program)
// Output: [1, 2]
Signature
declare const allSuccesses: <X extends Effect<any, any, any>>(elements: Iterable<X>, options?: { readonly concurrency?: Concurrency | undefined; readonly batching?: boolean | "inherit" | undefined; readonly concurrentFinalizers?: boolean | undefined; } | undefined) => Effect<Array<Effect.Success<X>>, never, Effect.Context<X>>
Since v2.0.0