發(fā)布訂閱模式

把需要做的事情放到一個數(shù)組中,等會事情發(fā)生了讓訂閱的事情一次執(zhí)行

const fs = require('fs')

interface events {
  arr: Array<Function>,
  on(fn: Function): void,
  emit(): void
}

let events: events = {
  arr: [],
  on(fn) {
    this.arr.push(fn)
  },
  emit() {
    this.arr.forEach(fn => {
      fn()
    })
  }
}

interface IPerson {
  age: number,
  name: string
}

let person = {} as IPerson
events.on(() => {
  if(Object.keys(person).length === 2) {
    console.log(person)
  }
})

events.on(() => {
  console.log('觸發(fā)一次')
})

fs.readFile('./xxx.txt', 'utf8', (err, data) => {
  person.age = data
  events.emit()
})
fs.readFile('./xxxsss.txt', 'utf8', (err, data) => {
  person.name = data
  events.emit()
})
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容