JSFiddle - React, Tailwind, and code Playground
by amindunited
JavaScript
/** SOF
* The Singnal Class
*
*/
class Signal {
constructor() {
this.listeners = [];
}
add(listener) {
this.listeners.push(listener);
}
remove(listener) {
this.listeners = this.listeners.filter((l) => l !== listener);
}
dispatch(data) {
this.listeners.forEach((listener) => {
listener(data);
});
}
}
// module.exports = Signal;
/** EOF
* The Singnal Class
*
*/
/*
*
*/
/* const Signal = require('./Signal'); */
// Create signals
const mySignal = new Signal();
// Subscribe to the signal
const listener1 = (data) => {
console.log('Listener 1:', data);
};
mySignal.add(listener1);
// Dispatch an event
mySignal.dispatch('Hello, world!');
// Unsubscribe from the signal
mySignal.remove(listener1);
// Dispatch again
mySignal.dispatch('This should not be logged.');