An async event wrapper that always resolve to the result of the latest call
In the example below, both call will return the result of the second call (2)
import { latest } from "@pistonite/pure/sync";let counter = 0;const execute = latest({ fn: async () => { counter++; await new Promise((resolve) => setTimeout(() => { resolve(counter); }, 1000)); }});const result1 = execute();const result2 = execute();console.log(await result1); // 2console.log(await result2); // 2 Copy
import { latest } from "@pistonite/pure/sync";let counter = 0;const execute = latest({ fn: async () => { counter++; await new Promise((resolve) => setTimeout(() => { resolve(counter); }, 1000)); }});const result1 = execute();const result2 = execute();console.log(await result1); // 2console.log(await result2); // 2
See the constructor options for more advanced usage, for example, control how arguments are updated when new calls are made.
An async event wrapper that always resolve to the result of the latest call
Example
In the example below, both call will return the result of the second call (2)
Advanced Usage
See the constructor options for more advanced usage, for example, control how arguments are updated when new calls are made.