const doSomething = Effect.gen(function*() {
yield* Effect.addFinalizer(Exit.matchEffect({
onFailure: () => Effect.void,
onSuccess: () =>
Effect.gen(function*() {
yield* Effect.sleep(4000)
console.log("did something for 4s")
})
}))
return Math.random()
})
const program = Effect.gen(function*() {
return yield* doSomething
})
program.pipe(
Effect.scoped,
Effect.runPromise
).then(console.log)
const doSomething = Effect.gen(function*() {
yield* Effect.addFinalizer(Exit.matchEffect({
onFailure: () => Effect.void,
onSuccess: () =>
Effect.gen(function*() {
yield* Effect.sleep(4000)
console.log("did something for 4s")
})
}))
return Math.random()
})
const program = Effect.gen(function*() {
return yield* doSomething
})
program.pipe(
Effect.scoped,
Effect.runPromise
).then(console.log)