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');