最简单的发布订阅者模式

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();

})

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 为什么人们总是在后悔?为什么提到一些事情的时候总是在说:要是当时怎么怎么样就好了。废话,要是早知道怎样,要是当时怎...
    那天幕后阅读 4,446评论 0 1
  • 看到你高兴,我比你更开心;看到你难过,我怎么也提不起精神。其实,你不知道吧,我以朋友的名义,慢慢靠近你,付出...
    含笑一睹你容颜阅读 1,865评论 0 1
  • 以前看着闺蜜被爱情伤的我就纳闷的不行,为了个渣男至于吗,分手再找个呗,每天哭,有那么难受吗?特别不理解,直到现在让...
    那年肆意微笑阅读 2,425评论 0 0
  • 经常会有人调侃我文釆不错,那我便沉下心来多读些书,心想或许会写得更好。但是你会发现,读的书越多反而会越觉得自...
    铁琐阅读 2,472评论 0 1