(cont: Effect.Effect<number>)
| 33 | it.effect("deep asyncEffect doesn't block", () => |
| 34 | Effect.gen(function*() { |
| 35 | const asyncIO = (cont: Effect.Effect<number>): Effect.Effect<number> => { |
| 36 | return Effect.asyncEffect((cb) => { |
| 37 | return pipe( |
| 38 | Effect.sleep(Duration.millis(5)), |
| 39 | Effect.zipRight(cont), |
| 40 | Effect.zipRight(Effect.succeed(cb(Effect.succeed(42)))) |
| 41 | ) |
| 42 | }) |
| 43 | } |
| 44 | const stackIOs = (count: number): Effect.Effect<number> => { |
| 45 | return count < 0 ? Effect.succeed(42) : asyncIO(stackIOs(count - 1)) |
| 46 | } |