4 # 发布订阅模式

简介: 4 # 发布订阅模式

发布订阅模式

发布订阅模式分成两个部分:订阅和发布没有明显的关联

  • on(订阅):就是把一些函数维护到一个数组中
  • emit(发布):就是让数组中的函数依次执行

下面用发布订阅模式实现多个异步请求同时获取最终结果:

let fs = require("fs");
let person = {};
let event = {
    arr: [],
    on(fn) {
        this.arr.push(fn);
    },
    emit() {
        this.arr.forEach((fn) => fn());
    },
};
event.on(function () {
    if (Object.keys(person).length === 2) {
        console.log("event--person--->", person);
    }
});
fs.readFile("./file/name.txt", "utf-8", function (err, data) {
    console.log("name.txt--->", err, data);
    person.name = data;
    event.emit();
});
fs.readFile("./file/age.txt", "utf-8", function (err, data) {
    console.log("age.txt--->", err, data);
    person.age = data;
    event.emit();
});

目录
相关文章
|
编译器 API C语言
C/C++ 获取文件名的方法:分享一些实用的获取文件名的方法和技巧(__FILE__,__builtin_FILE(),__BASE_FILE__等)
C/C++ 获取文件名的方法:分享一些实用的获取文件名的方法和技巧(__FILE__,__builtin_FILE(),__BASE_FILE__等)
1276 0
|
数据采集 机器学习/深度学习 人工智能
决策树C4.5算法的技术深度剖析、实战解读
决策树C4.5算法的技术深度剖析、实战解读
500 0
|
资源调度 安全 网络协议
聊聊 Zookeeper 的 4lw 与信息安全
聊聊 Zookeeper 的 4lw 与信息安全
|
6月前
|
Linux 开发工具 C语言
在CentOS系统中编译安装TinyXml2的方法
以上就是在CentOS系统中编译安装TinyXml2的方法。这个过程可能会有些复杂,但只要你按照上面的步骤一步一步来,你应该能够成功地完成这个任务。如果你在这个过程中遇到任何问题,你可以在网上搜索相关的资料,或者在相关的论坛上寻求帮助。希望这个指南能够帮助你成功地在你的CentOS系统中编译安装TinyXml2。
151 22
|
11月前
|
数据采集 JSON JavaScript
如何通过PHP爬虫模拟表单提交,抓取隐藏数据
本文介绍了如何使用PHP模拟表单提交并结合代理IP技术抓取京东商品的实时名称和价格,特别是在电商大促期间的数据采集需求。通过cURL发送POST请求,设置User-Agent和Cookie,使用代理IP绕过限制,解析返回数据,展示了完整代码示例。
219 3
如何通过PHP爬虫模拟表单提交,抓取隐藏数据
|
安全 网络安全 数据库
Matrix-breakout-2-morpheus靶机渗透技术分享
进行任何形式的渗透测试都必须得到系统所有者的明确许可,未经授权的渗透测试可能触犯法律。这个过程要求渗透测试员拥有深厚的网络安全知识和高度的道德标准,以确保技术用于提高我们数字世界的安全性。
168 3
|
人工智能 小程序 API
文字转语音神器+Python编程搞定语音报时小程序
文字转语音神器+Python编程搞定语音报时小程序
192 2
|
安全 Unix 物联网
操作系统的演变与技术革新
在这篇文章中,我们将探索操作系统(OS)的发展历程,从早期的批处理系统到现代的多任务操作系统。文章将揭示技术创新如何推动操作系统的进步,并讨论这些进步如何影响我们的日常生活和工作方式。通过深入浅出的分析,我们将了解不同代的操作系统背后的设计哲学,以及它们是如何应对不断增长的性能需求和安全挑战的。本文旨在为读者提供操作系统发展的宏观视角,同时指出未来可能的技术趋势。
239 2
|
机器学习/深度学习 人工智能 搜索推荐
人力资源管理(HRM)系统的未来:技术引领的变革浪潮
【6月更文挑战第24天】随着AI、大数据、云计算和移动技术的融合,HRM正转型为提升效率和员工体验的关键工具。AI助力智能决策,大数据驱动精准管理,云计算与移动技术实现无缝访问和远程操作。员工体验被置于设计核心,系统更人性化、个性化。未来趋势强调全面整合与协同工作,赋能企业高效运营。
|
存储 缓存 算法
内存系列学习(二):ARM处理器中CP15协处理器
内存系列学习(二):ARM处理器中CP15协处理器
324 0