¿Cómo puedo crear un evento que se adjunta a un objeto de clase?
Tengo que crear una clase que tenga un evento que deba llamarse en un momento determinado. La clase se ve así y debería llamar al evento newMember cuando se agrega uno nuevo. Lo que funciona es que adjunto un evento personalizado a la ventana y lo llamo, que no es mi objetivo.
No NodeJS.
class Room { constructor() { this.members = {} } addMember(data) { if (!this.members[data.remotesid]) { this.members[data.socket] = data.identity //this.dispatchEvent(); } else { console.log('Member already in room') } } }Después de recibir un aviso de que necesito extender mi clase con EventTarget . Ahora he resuelto esta solución de trabajo.
class Room extends EventTarget { #event; constructor() { super(); this.members = {} } addMember(data) { if (!this.members[data.remotesid]) { this.members[data.socket] = data this.#event = new CustomEvent("newMember", { detail: data }); this.dispatchEvent(this.#event); } else { console.log('Member already in room') } } } var room = new Room(); room.addEventListener("newMember", function (e) { console.log("newMember event ", e); });