博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
发布订阅模式
阅读量:6392 次
发布时间:2019-06-23

本文共 781 字,大约阅读时间需要 2 分钟。

发布订阅模式

一定是先有的订阅,然后才会发布,让订阅的接收到发布的内容。

订阅会将函数放入数组中:[fn1,fn2,fn3]。然后发布的时候让数组中的函数一次执行。

1.实现发布订阅

  • addSub将函数放入数组中就是订阅功能
  • notify让数组中的函数一次执行就是发布功能
function Dep() {    this.subs=[];}//订阅Dep.prototype.addSub=function (sub) {    this.subs.push(sub);}//sub中都有一个update属性,当需要sub执行的时候执行sub中的update方法Dep.prototype.notify=function () {    this.subs.forEach(sub=>sub.update())}复制代码

2.创建实例需要被订阅的构造函数

通过Watcher创建的实例都可以被订阅,当发布的时候可以执行update中的方法。

function Watcher(fn) {//Watcher是一个类  通过这个类创建的实例都拥有update方法    this.fn=fn;}Watcher.prototype.update=function () {    this.fn();}let watcher=new Watcher(function () { //监听函数    console.log(1)})复制代码

3.执行发布订阅

let dep=new Dep();dep.addSub(watcher);//订阅上    将watcher放到数组中  [watcher]dep.addSub(watcher);//订阅上    将watcher放到数组中  [watcher,watcher]dep.notify();// 发布复制代码

转载地址:http://ldpha.baihongyu.com/

你可能感兴趣的文章
2015百度之星 列变位法解密
查看>>
windows文件名非法字符过滤检测-正则表达式
查看>>
android 屏幕旋转180度
查看>>
Connect模块解析 转载
查看>>
javamail.providers not found
查看>>
模拟数据库,表空间和数据文件损坏后的恢复操作
查看>>
Day2_and_Day3 文件操作
查看>>
身份证号信息后台匹配
查看>>
(转)Javascript模块化编程(一):模块的写法
查看>>
UVA 10954 - Add All
查看>>
磁珠,电感,零欧电阻之间的区别
查看>>
反射(高大上)、类的内置方法
查看>>
redis管道技术
查看>>
文件和结构体
查看>>
2059-authentication plugin 'caching_sha2_password"cnnot bt loaded :mysql8.0数据库链接不上:
查看>>
算法:反转链表。
查看>>
Android 消息异步处理之AsyncTask
查看>>
Java垃圾回收工作原理
查看>>
python2 urllib 笔记
查看>>
GCD
查看>>