const optionA = O.some("myOption")
const optionB = O.some("myOption")
const someEffectFunction = (param:string):T.Effect<O.Option<string>> => T.die(`myEffectFunction implementation ${param}`)
const myResultA:T.Effect<O.Option<string>, never, never> = pipe(
optionA,
O.match({
onNone: () => T.succeed(O.none()),
onSome: ref => someEffectFunction(ref)
})
)
const myResultB:T.Effect<O.Option<string>, never, never> = pipe(
optionB,
O.match({
onNone: () => T.succeed(O.none()),
onSome: ref => someEffectFunction(ref)
})
)
const result: T.Effect<
{
myResultA: O.Option<string>
myResultB: O.Option<string>
}
> = T.all({myResultA, myResultB},{concurrency:2})
const optionA = O.some("myOption")
const optionB = O.some("myOption")
const someEffectFunction = (param:string):T.Effect<O.Option<string>> => T.die(`myEffectFunction implementation ${param}`)
const myResultA:T.Effect<O.Option<string>, never, never> = pipe(
optionA,
O.match({
onNone: () => T.succeed(O.none()),
onSome: ref => someEffectFunction(ref)
})
)
const myResultB:T.Effect<O.Option<string>, never, never> = pipe(
optionB,
O.match({
onNone: () => T.succeed(O.none()),
onSome: ref => someEffectFunction(ref)
})
)
const result: T.Effect<
{
myResultA: O.Option<string>
myResultB: O.Option<string>
}
> = T.all({myResultA, myResultB},{concurrency:2})