Skip to content

TheoPierne/node-threading-event

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

node-threading-event

A simple and lightweight implementation of threading.Event in Node.js

Installation

Node.js v16.0.0 or newer is required.

npm install node-threading-event

Example usage

const NodeThreadingEvent = require('node-threading-event');

const event = new NodeThreadingEvent();

event.set();

if (event.isSet()) {
  console.log('Event is set !');
}

event.clear();

(async function() {
  setTimeout(() => {
    event.set();
  }, 1000);

  const res = await event.wait();
  console.log('Event is set after 1 second');
})()

(async function() {
  setTimeout(() => {
    event.set();
  }, 500);

  const res = await event.wait(1000);
  console.log('Event is set after 1 second');
})()

Documentation

set()

Set the internal flag to true.

  • Return void

isSet()

Return true if and only if the internal flag is true.

  • Return boolean

clear()

Reset the internal flag to false.

  • Return void

wait(timeout = null)

Block until the internal flag is true.

If the internal flag is true on entry, return immediately. Otherwise, block until another set() call to set the flag to true, or until the optional timeout occurs.

  • timeout - (optional) - Specify the time to wait until the timeout occurs.
  • Return Promise<boolean>