NewGlace / TheTimer

You have too many setInterval/setTimeout?

Home Page:https://discord.gg/v6SQPSEz

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TheTimer

Waking up one morning and saying "Can we improve the setInterval/setTimeout?", nobody asked this question? no... um strange.
You can see the final class by clicking here. (./src/utils/class/Timer.ts)

Sommary

How it works

  • I create a class with a setInterval of 1 ms as constructor
    in this class I add a Map() allowing the management of future timers.

    • In the setInterval there is a loop that will look if the timer's time has passed, if it has then it executes the function and redefines the time, otherwise it does nothing and waits for the next loop.
  • When the <Timer>.setInterval or <Timer>.setTimeout method is used I add this data to the Map(), so it can be processed in a timely manner.

Manage a Interval/Timeout

const timer = new Timer();

// Create Timer
const interval = timer.setInterval(func, ms);
const timeout = timer.setTimeout(func, ms);

// Clear Timer
timer.clear(interval, timeout);

// View Timer
console.log(timer.timerList);

My Test

Pour voir si mon système était utile, j'ai donc fait une série de test.
en applant ./src/main.ts nous allons pouvoir choisir quel timer essayer avec différente conditions.

Si le switch est sur true alors nous allons tester ma version du timer. (./src/utils/func/newTimer.ts)
Si le switch est sur false alors nous allons tester le timer de base. (./src/utils/func/classicTimer.ts)

Une fois le timer appeler, je vais appeler une autre functions (./src/utils/func/calculateData.ts), qui vas regarder le temps de réponse, et la mémoire utilisé pour l'ajouter dans des fichiers json pour ensuite pouvoir les comparés.

Json files

About

You have too many setInterval/setTimeout?

https://discord.gg/v6SQPSEz


Languages

Language:TypeScript 100.0%