原理一个全局变量event对象耦合发布器和订阅器
const fs = require('fs');
let result = {};
let event = {
arr: [],
on(fn) {
this.arr.push(fn);
},
emit() {
this.arr.forEach(fn => fn());
}
}
event.on(function() {
console.log('读取一次');
});
event.on(function() {
if (Object.keys(result).length === 2) {
console.log(result);
}
});
fs.readFile('./assets/name.txt', 'utf-8', (err, data) => {
result['name'] = data;
event.emit();
});
fs.readFile('./assets/age.txt', 'utf-8', (err, data) => {
result['age'] = data;
event.emit();
});
console.log('主线程');