dojo的订阅主题和发布主题

var handleClose=null;
function widgetOnClose(callback) {
    require(['dojo/topic', 'dojo/_base/connect'], function (topic, connect) {

        if (handleClose) {
            connect.unsubscribe(handleClose);
            handleClose=null;
        }

        handleClose = topic.subscribe("widgetOnClose", callback);

    })
}

需要执行某个从操作时,这个操作必须以另一个执行的结果作为参数时,既可在此订阅一个事件,当那边的执行结束时,发布一个消息,通知这边,并传递结果,然后这边拿着这个结果开始执行。

 

假如现有两个函数
fn1: function topic(){
 console.log('我要给你发一个通知哦')
}
fn2:  function lisnter1(){
     console.log('你要干嘛,我收到你的消息了')

}
现在我需要fn1 通知到后,fn2执行,
function topic(){
 console.log('我要给你发一个通知哦')
lisnter1()
}
假如我要有多个函数接到topic的通知后执行呢,就要不停地扩展function topic(){
 console.log('我要给你发一个通知哦')
lisnter1()
lisnter2()
lisnter3()
......
}
这样代码就很不容易扩展,所以这个发布/订阅模式就很好的解决这个问题了。我只需要发布一个通知,然后需要在我的这个通知后,执行的操作,你就自己订阅下我这个消息。我一发布,你们需要都去订阅就行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值