let fs = require('fs')
let event={
arr:[],
on(fn){
this.arr.push(fn)
},
emit(){
this.arr.forEach(fn=>fn())
}
}
event.on(function(){
console.log('读取完毕')
})
let school={}
fs.readFile('./name.txt','utf8',function(err,data){
school.name=data;
event.emit();
})
fs.readFile('./age.txt','utf8',function(err,data){
school.age=data;
event.emit();
})
class Subject{
constructor(name){
this.name=name
this.state=''
this.observers=[]
}
attach(o){
this.observers.push(o)
}
setState(newState){
this.state=newState
this.observers.forEach(o=>o.update(this))
}
}
class Observer{
constructor(name){
this.name=name
}
update(baby){
console.log('被通知'+this.name+'状态'+baby.state)
}
}
let baby=new Subject('小宝宝')
let dad=new Observer('爸爸')
let mother =new Observer('妈妈')
baby.attach(dad)
baby.attach(mother)
baby.setState('哭了')