2025年实现一个简单的发布订阅模式_vue订阅者发布者实现

实现一个简单的发布订阅模式_vue订阅者发布者实现发布订阅模式可以理解为 用户关注一个了微信公众号 订阅 当公众号有内容更新时会推送 发布 给所有关注该公众号的用户 废话不多说直接上代码 此 demo 仅帮助理解发布 订阅模式 let Observable observers 订阅者集合 addObserver function observer 添加订阅者 this observers

发布订阅模式可以理解为:

用户关注一个了微信公众号(订阅),当公众号有内容更新时会推送(发布)给所有关注该公众号的用户。

废话不多说直接上代码(此demo仅帮助理解发布/订阅模式):

let Observable = {
observers:[], // 订阅者集合
addObserver:function (observer) { // 添加订阅者
this.observers.push(observer)
},
removeObserver:function (observer) { // 移除订阅者
let index = this.observers.indexOf(observer);
if(~index){
this.observers.splice(index,1);
}
},
notifyObservers:function (message) { // 向订阅者发布消息
for(let i = 0; i <= this.observers.length-1; i++){
this.observers[i](message);
}
}
};


function observer1(message){

console.log(`1---------${message}`);

}

function observer2(message){

console.log(`2---------${message}`);

}

function observer3(message){

console.log(`3---------${message}`);

}

// 添加订阅者
Observable.addObserver(observer1);
Observable.addObserver(observer2);
Observable.addObserver(observer3);

// 向订阅者发布(通知)消息
Observable.notifyObservers('hello');

// 移除订阅者
Observable.removeObserver(observer1);

Observable.notifyObservers('test');

输出结果为:
1---------hello
2---------hello
3---------hello
2---------test
3---------test
编程小号
上一篇 2025-02-16 08:01
下一篇 2025-08-19 18:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/141564.html