JSFiddle - React, Tailwind, and code Playground
by Farzad YZ
JavaScript
const maxMessages = 3;
let messagesCount = 0;
class EventEmitter {
constructor() {
this.messageLog = [];
}
onMessage() {
}
postMessage(message) {
if (messagesCount >= maxMessages) {
return;
}
this.messageLog.push(message);
this.onMessage(message);
}
}
const et1 = new EventEmitter();
const et2 = new EventEmitter();
et1.onMessage = (message => {
console.log(`et1 received: ${message}`);
messagesCount++;
if (message === "ping") {
et2.postMessage('pong');
}
});
et2.onMessage = (message => {
console.log(`et2 received: ${message}`);
messagesCount++;
if (message === "pong") {
et1.postMessage('ping');
}
});
et1.postMessage('ping');