前言
一、什么是发布订阅模式?
举例:你去买东西,但是你要买的东西断货了,老板让你留下你的联系方式,到货之后给你打电话,这就是发布订阅模式。解析:根据上面的栗子,小编给大家讲解一下!这里老板就是发布者,你就是订阅者,订阅者将电话添加到了发布者的缓存列表中(也就是电话簿中),到货后,发布者就会遍历缓存列表(电话簿)依次通知所有订阅者。
二、发布订阅模式-上代码
1.发布订阅模式代码
SyncHook.js文件
//定义一个类作为发布者
class SyncHook {
constructor(args) {
//1.发布队列(电话簿)
this.tasks = [];
//2.定义属性保存将来会给订阅者传递多少个参数
this.args = args;
}
//添加订阅者
tap(tag, task) {
this.tasks.push(task);
}
//发布消息
call(...args) {
if (args.length < this.args.length) {
throw new Error("发布者参数不足");
}
args = args.slice(0, this.args.length);
this.tasks.forEach(function (task) {
task(...args);
});
}
}
//1.创建发布者<