const fs = require('fs');
const path = require('path');
class E {
constructor(array) {
this.array = array;
this.obj = {};
}
emit() {
this.array.forEach(element => element());
}
on(fn) {
this.array.push(fn)
}
}
let e = new E([]);
e.on(()=>{
console.log('ok')
})
e.on(() => {
if (Object.keys(e.obj).length == 2) {
console.log(e.obj)
}
})
fs.readFile(path.join(__dirname + '/1.txt'), 'utf8', (error, data) => {
e.obj['name'] = data
e.emit();
})
fs.readFile(path.join(__dirname + '/2.txt'), 'utf8', (error, data) => {
e.obj['age'] = data
e.emit();
})