268
export function debounce<I, O>(event: Event<I>, merge: (last: O | undefined, event: I) => O, delay?: number | typeof MicrotaskDelay, leading?: boolean, flushOnListenerRemove?: boolean, leakWarningThreshold?: number, disposable?: DisposableStore): Event<O>;
269
export function debounce<I, O>(event: Event<I>, merge: (last: O | undefined, event: I) => O, delay: number | typeof MicrotaskDelay = 100, leading = false, flushOnListenerRemove = false, leakWarningThreshold?: number, disposable?: DisposableStore): Event<O> {
270
>
let subscription: IDisposable;
event.ts
271
>
let output: O | undefined = undefined;
272
>
let handle: Timeout | undefined | null = undefined;
273
>
let numDebouncedCalls = 0;
274
>
let doFire: (() => void) | undefined;
275
>
276
>
const options: EmitterOptions | undefined = {
277
>
leakWarningThreshold,
278
>
onWillAddFirstListener() {
279
>
subscription = event(cur => {
280
numDebouncedCalls++;
281
output = merge(output, cur);