介绍
$.Callbacks() 指一个多用途的回调函数列表对象,提供了一种强大的方法来管理回调函数队列。将 $.Callbacks 作为一个文章队列来实现文章的发布和订阅。
代码实现
var topics = {};
$.weixin = function( id ) {
var callbacks,
method,
topic = id && topics[ id ];
if ( !topic ) {
callbacks = $.Callbacks();
topic = {
publish: callbacks.fire,
// 调用subscribe 将订阅回调函数存放在当前topic_list中
subscribe: callbacks.add,
unsubscribe: callbacks.remove
};
if ( id ) {
topics[ id ] = topic;
}
}
return topic;
};
// 小王订阅
$.weixin( "js" ).subscribe(function(data) {
console.log('小王收到的内容:' + data);
});
// 小王的儿子订阅
$.weixin( "js" ).subscribe(function(data) {
console.log('小王儿子收到的内容:' + data);
});
// 小李订阅
$.weixin( "nodejs" ).subscribe(function(data) {
console.log('小李收到的内容:' + data);
});
// 发布
$.weixin( "js" ).publish( "Hello js!" );
$.weixin( "nodejs" ).publish( "Hello nodejs!" );
运行结果:
版权声明:本文为博主原创文章,转载请添加原文地址 https://www.qianduan7.com/javascript/jquery-subscribe-publish.html