cubicmushroom/js-pub-sub

轻量级JavaScript PubSub库,包括回调优先级和取消功能

安装: 9

依赖: 0

建议者: 0

安全: 0

星级: 1

关注者: 3

分支: 2

语言:JavaScript

dev-master 2013-01-20 02:16 UTC

This package is not auto-updated.

Last update: 2024-09-14 12:14:16 UTC


README

使用 return false 支持优先级和中断的JavaScript PubSub库。

简单示例

要订阅一个主题,简单使用 CMPubSub.subscribe() 方法...

var callback = function(msg) {
    alert(msg);
};
CMPubSub.sub('topicName', callback);

注意: 主题不需要预先定义。您可以在 CMPubSub 知道它之前订阅它。

并且要发布到主题...

var obj = {
    some: 'info'
};
CMPubSub.pub('topicName', obj, 1, 2, 'a', 'b');

在这个示例中,callback 函数将使用参数 [1, 2, 'a', 'b'] 被调用。在回调内部,this 将指向 obj 对象

注意: 传递原始类型变量(数字或字符串)不是通过引用进行的,因此对它的任何更改都不会在回调之后持续。非原始变量是通过引用传递的,因此您可以修改对象,并且更改将得以持续。

传递上下文(this

为了允许在订阅者回调中设置 thisCMPubSub.sub() 方法的回调参数可以包含要使用的上下文对象。如果需要,回调参数成为包含 2 项的数组... 第 1 项是回调函数,第 2 项是上下文对象。

优先级回调

您可以在 CMPubSub.sub() 调用中添加第 3 个参数来设置回调的优先级。优先级需要是一个数字,其中 1 是最高优先级。如果没有提供,则默认优先级为 9。

中断发布

回调可以中断发布过程,并通过返回 false 使 CMPubSub.pub() 方法返回 false。这将防止调用后续回调,并向调用函数提供反馈,表明过程已被中断。如果发布没有被中断,或者没有订阅者,那么 CMPubSub.pub() 调用将返回 true

路线图

  1. 添加取消订阅的能力;
  2. 添加主题命名空间(如jQuery所做),以便更容易取消事件订阅;