Hyperlinkv0.8.0-beta.28

Polling

Polling.spacedconstsrc/Polling.ts:136
(interval: Duration.Input): Layer.Layer<PollingTag>

Fixed interval between ticks. resetCadence wakes the current wait immediately.

presets
Source src/Polling.ts:13618 lines
export const spaced = (interval: Duration.Input): Layer.Layer<PollingTag> => {
  const dur = Duration.fromInputUnsafe(interval);
  return registerPollingLayer(
    Layer.effect(
      PollingTag,
      Effect.map(
        makeWakeableAwait(dur),
        ({ awaitNextTick, requestWake }): PollingService => ({
          awaitNextTick,
          requestWake,
          resetCadence: requestWake,
          afterTick: Effect.void,
          peekCadence: Effect.succeed(Option.some(dur)),
        })
      )
    )
  );
};