Skip to the content.

๐Ÿข Node.js

๐ŸŒŸ The different core modules

Timers

The Node.js Timers module contains functions that execute code after a specified period of time. There is no need to import timers through require(), as all methods are globally available to emulate the browserโ€™s JavaScript API.

I recommend that you read the official Node.js guide on timers.

The available functions are setImmediate, setTimeout and setInterval.

setImmediate is a function unique to Node.js (it does not exist in the browser) and it allows code to be executed at the start of the next iteration of the event-loop.

import { setInterval} from "timers/promises";

for await (const startTime of setInterval(100, Date.now())) {
    const now = Date.now();
    console.log(now);
    if ((now - startTime) > 1000) {
        break;
    }
}
console.log(Date.now());

Note that it is possible to call the unref method on a timer so that the event-loop can stop even if the timer is still active. This is very useful in cases where you absolutely do not want a timer (interval for example) to be able to prevent the event-loop from stopping.

This is for example the case in the SlimIO/Config package where a setInterval is used to constantly clean up Observables that have been closed (to avoid a memory-leak). However, I donโ€™t want the timer in question to prevent the event-loop from stopping if someone uses my package :)


โฌ…๏ธ ๐ŸŒŸ The different core modules: FileSystem | โžก๏ธ ๐ŸŒŸ The different core modules: URL (API WHATWG)