Итак, вот что я подстроил, это работает, хотя я знаю, что в ES6 есть более интересный синтаксис getter / setter. Также я передаю определение класса EE3 классу подмодуля после одного асинхронного вызова для загрузки модуля EE3 ... возможно, есть лучший способ справиться с этим ...
Main:
// webpack dynamic import of EventEmitter3 here, setting a ref to EE3's class def
// the following Main code is actually within the dynamic import's promise then()
const listeningclassinstance = new ListeningClass(ee3class ,maineventemitter);
const listeningclassinstanceeventemitter = listeningclassinstance.getlisteningclasseventemitter();
listeningclassinstanceeventemitter.on("emittedeventfromlisteningclassinstance", () => {
console.log("main can hear event emitted from listeningclassinstance");
});
Подмодуль Класс:
export default class ListeningClass {
constructor(ee3class,maineventemitter) {
this.maineventemitter = maineventemitter;
this.maineventemitter.on(
"emittedeventfrommain",
this.onemittedeventfrommain.bind(this);
this.eventemitter = new ee3class();
}
onemittedeventfrommain() {
console.log("ListeningClass emittedeventfrommain");
this.eventemitter.emit("emittedeventfromlisteningclassinstance");
}
getlisteningclasseventemitter() {
return this.eventemitter;
}
// ListeningClass
}