Так что я в основном пытаюсь излучать и прослушивать указанное c событие в разных классах машинописи. Первое излучаемое событие правильно прослушивается в другом классе, но как только я установил тайм-аут, например, для выдачи другого события через 10 секунд, он как слушатель больше не слушает ..
commonEmitter .ts
let events = require('events');
let em = new events.EventEmitter();
module.exports.commonEmitter = em;
network.ts
export class Network {
constructor() {
this.setConnection('connected');
setTimeout(() => {
commonEmitter.emit('connectionStatusChanged');
connection = 'disconnected';
}, 10000);
}
private setConnection(newConnection): void {
connection = newConnection
commonEmitter.emit('connectionStatusChanged');
}
public isConnected(): boolean {
return connection === 'connected';
}
}
export let connection = null;
view.ts
export class View {
private network: any;
constructor() { }
private test(){
console.log('Online? ' + this.network.isConnected());
}
public init(){
commonEmitter.on('connectionStatusChanged', this.test());
this.network = new Network();
}
В конце оба события испускаются, но только первое прослушивается. В чем причина этого и как я могу это сделать упорядоченным образом?