UNPKG

@amityco/ts-sdk-react-native

Version:

Amity Social Cloud Typescript SDK

29 lines (25 loc) 648 B
/* eslint-disable @typescript-eslint/ban-types */ let tasks: Function[] = []; let timer: NodeJS.Timeout; /** * Add a function to run just before the next tick * * @param task function to schedule for later execution */ export const scheduleTask = (task: Function) => { clearTimeout(timer); tasks.push(task); timer = setTimeout(() => { tasks.forEach(fn => fn()); tasks = []; }, 0); }; /** * Cancel the scheduling operation * * @param task function to be removed from later execution */ export const cancelTask = (task: Function) => { tasks = tasks.filter(fn => fn !== task); if (!tasks.length) clearTimeout(timer); };