(interval: Duration.Input)
| 510 | * @since 2.0.0 |
| 511 | */ |
| 512 | export const tick = (interval: Duration.Input): Stream<void> => |
| 513 | fromPull(Effect.sync(() => { |
| 514 | let first = true |
| 515 | const effect = Effect.succeed(Arr.of<void>(undefined)) |
| 516 | const delayed = Effect.delay(effect, interval) |
| 517 | return Effect.suspend(() => { |
| 518 | if (first) { |
| 519 | first = false |
| 520 | return effect |
| 521 | } |
| 522 | return delayed |
| 523 | }) |
| 524 | })) |
| 525 | |
| 526 | /** |
| 527 | * Creates a stream from a pull effect, such as one produced by `Stream.toPull`. |