发布订阅模式

发布订阅模式

观察者和目标要相互知道

发布者和订阅者不用相互知道,通过第三方实现调度,属于经过解耦合的观察者模式

在这里插入图片描述

//public发布
//subscribe订阅
const PubSub = {
	message:{},
	//发布
	publish(data){
		if(!this.message[type]){
			return
		}
		this.message[type].forEach(item => {
			item(data)
		})
	},
	//订阅
	subscribe(type,cb){
		if(!this.message[type]){
			this.message[type] = [cb]
		}else{
			this.message[type].push(cb)
		}
	},
	//取消订阅
	unsubscribe(type,cb){
		if(!this.message[type]){
			return
		}
		if(!cb){
			//取消所有
			this.message[type] && (this.message[type].length = 0)
		}else{
			this.message[type] = this.message[type].filter(item => {
				item !== cb
			})
		}
	}
}
function testA(data){
	console.log('testA',data)
}
function testB(data){
	console.log('testB',data)
}
PubSub.subscribe('A',testA)
PubSub.subscribe('B',testB)

bscribe(‘A’,testA)
PubSub.subscribe(‘B’,testB)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值