chenyc
2025-12-09 545c24c6a711d71b65f3d4e8122fee3837fb1edc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import { TResolveSetResponseResultPromise } from '../types';
 
export const createClearTimer =
    (clearTimeout: (typeof globalThis)['clearTimeout'], identifiersAndResolvers: Map<number, [number, TResolveSetResponseResultPromise]>) =>
    (timerId: number) => {
        const identifiersAndResolver = identifiersAndResolvers.get(timerId);
 
        if (identifiersAndResolver === undefined) {
            return Promise.resolve(false);
        }
 
        const [identifier, resolveSetResponseResultPromise] = identifiersAndResolver;
 
        clearTimeout(identifier);
        identifiersAndResolvers.delete(timerId);
 
        resolveSetResponseResultPromise(false);
 
        return Promise.resolve(true);
    };