Fiber.zip
元のファイバー両方の結果を生成する
片方が失敗場合、合成されたFiberも失敗する
code:ts
const program = Effect.gen(function* () {
const fiber1 = yield* Effect.fork(Effect.succeed("Hi!"))
const fiber2 = yield* Effect.fork(Effect.succeed("Bye!"))
const fiber = Fiber.zip(fiber1, fiber2)
const tuple = yield* Fiber.join(fiber)
console.log(tuple)
})
フォールバック付き合成
最初のFiberが失敗した場合に代替のFiberを実行できる
code:ts
const program = Effect.gen(function* () {
const fiber1 = yield* Effect.fork(Effect.fail("Uh oh!"))
const fiber2 = yield* Effect.fork(Effect.succeed("Hurray!"))
const fiber = Fiber.orElse(fiber1, fiber2)
const message = yield* Fiber.join(fiber)
console.log(message)
})