diff --git a/packages/common-ts/src/eventual/__tests__/eventual.ts b/packages/common-ts/src/eventual/__tests__/eventual.ts index 21e4289..80dc63d 100644 --- a/packages/common-ts/src/eventual/__tests__/eventual.ts +++ b/packages/common-ts/src/eventual/__tests__/eventual.ts @@ -286,7 +286,7 @@ describe('Eventual', () => { }) test('Join (timer)', async () => { - const ticker = timer(100) + const [intervalID, ticker] = timer(100) const ticks = ticker.reduce(n => ++n, 0) const ticksViaJoin = join({ ticker }).reduce(n => ++n, 0) @@ -296,6 +296,7 @@ describe('Eventual', () => { // we're happy await expect(ticks.value()).resolves.toBeGreaterThan(5) await expect(ticksViaJoin.value()).resolves.toBeGreaterThan(5) + clearInterval(intervalID) }) test('Values (async generator)', async () => { diff --git a/packages/common-ts/src/eventual/eventual.ts b/packages/common-ts/src/eventual/eventual.ts index b69044d..ae268f2 100644 --- a/packages/common-ts/src/eventual/eventual.ts +++ b/packages/common-ts/src/eventual/eventual.ts @@ -286,10 +286,10 @@ export function throttle(source: Eventual, interval: number): Eventual return output } -export function timer(milliseconds: number): Eventual { +export function timer(milliseconds: number): [NodeJS.Timer, Eventual] { const time = mutable(Date.now()) - setInterval(() => time.push(Date.now()), milliseconds) - return time + const intervalID = setInterval(() => time.push(Date.now()), milliseconds) + return [intervalID, time] } export function reduce(