我希望能够拥有与jQuery的自定义事件和PubSubJS(http://github.com/mroderick/PubSubJS)中类似的pubsub机制。

问题在于这些pubsub库中的每个库都对该主题进行了完全匹配。 IO希望能够发布如下主题:

"Order/Sent/1234"

并听取订阅:
"Order/Sent/1234"
"Order/Sent/*"
"Order/*/1234"

有人知道JS这样的东西吗?

最佳答案

只需修改您喜欢的那个即可。将其 fork 到github上,打开pubsub.js并执行以下操作:

var deliverMessage = function(){
    var subscribers = [];

    for(var n in messages){
        if( new RegExp('^' + n + '$').test( message ) ){
            subscribers = subscribers.concat( messages[n] );
        }
        ...
    }
}

您可能需要进行一些修改,例如在转换为正则表达式之前,将所有*替换为.*[^\/]*,等等。

关于javascript - JS的基于主题的发布/订阅,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7180647/

10-11 10:29