首页 > 微信 > 详细

微信小程序 bus.js

时间:2021-04-19 01:46:51      阅读:40      评论:0      收藏:0      [点我收藏+]

bus.js

 

//事件总线的使用
//准备工作:将此js挂载到app.js中
  // var eventBus = require(‘utils/bus.js‘); //第app.js第一行加入

  // this.globalData = { //App({})根下加入
  //   bus: eventBus.eventBus
  // }
//使用:
  //不管发送方还是接收方都要加入机器人,,js第一行!
  // var app = getApp()
  // var bus = app.globalData.bus

  //使用:发送方
  // playing(e) {
  //   bus.emit(‘playing‘,e); 
  // },

  //使用:接收方
  // bus.on(‘playing‘, (data) => {
  //   //监听事件总线的改变
  //   console.log(data)
  // })


//创建EventBus对象
let EventBus = function () {
  console.log("eventbus init...");
};
//准备数组容器
var objBus = [], arrbus = [];
//添加方法
EventBus.prototype = {
  obj: {
    set: function (key, action) {
      if (key && action) {
        var map = {};
        map.k = key;
        map.v = action;
        //如果存在,则删除之前添加的事件
        for (var i = 0, busLength = objBus.length; i < busLength; i++) {
          var tempMap = objBus[i];
          if (tempMap.k == key) {
            objBus.splice(i, 1);
          }
        }
        objBus.push(map);
      }
    },
    get: function (key) {
      if (key) {
        for (var i = 0, busLength = objBus.length; i < busLength; i++) {
          var map = objBus[i];
          if (map.k == key) {
            return map.v();
          }
        }
      }
    }
  },
  emit: function (key, data) {
    if (key) {
      for (var i = 0, busLength = arrbus.length; i < busLength; i++) {
        var map = arrbus[i];
        if (map.k == key) {
          return map.v(data);
        }
      }
    }
    return new Promise((resolve, reject) => { resolve() })
  },
  on: function (key, action) {
    if (key && action) {
      var map = {};
      map.k = key;
      map.v = action;
      arrbus.push(map);
    }
  },
  arr: {
    push: function (key, action) {
      if (key && action) {
        var map = {};
        map.k = key;
        map.v = action;
        arrbus.push(map);
      }
    },
    pop: function (key) {
      if (key) {
        for (var i = 0, busLength = arrbus.length; i < busLength; i++) {
          var map = arrbus[i];
          if (map.k == key) {
            map.v();
          }
        }
      }
    }
  }
}
var eventBus = new EventBus()
module.exports = {
  eventBus: eventBus
}

 

//事件总线的使用
//准备工作:将此js挂载到app.js中
  // var eventBus = require(‘utils/bus.js‘); //第app.js第一行加入

  // this.globalData = { //App({})根下加入
  //   bus: eventBus.eventBus
  // }
//使用:
  //不管发送方还是接收方都要加入机器人,,js第一行!
  // var app = getApp()
  // var bus = app.globalData.bus

  //使用:发送方
  // playing(e) {
  //   bus.emit(‘playing‘,e); 
  // },

  //使用:接收方
  // bus.on(‘playing‘, (data) => {
  //   //监听事件总线的改变
  //   console.log(data)
  // })


//创建EventBus对象
let EventBus = function () {
  console.log("eventbus init...");
};
//准备数组容器
var objBus = [], arrbus = [];
//添加方法
EventBus.prototype = {
  obj: {
    set: function (key, action) {
      if (key && action{
        var map = {};
        map.k = key;
        map.v = action;
        //如果存在,则删除之前添加的事件
        for (var i = 0, busLength = objBus.length; i < busLength; i++{
          var tempMap = objBus[i];
          if (tempMap.k == key{
            objBus.splice(i, 1);
          }
        }
        objBus.push(map);
      }
    },
    get: function (key) {
      if (key{
        for (var i = 0, busLength = objBus.length; i < busLength; i++{
          var map = objBus[i];
          if (map.k == key{
            return map.v();
          }
        }
      }
    }
  },
  emit: function (key, data) {
    if (key{
      for (var i = 0, busLength = arrbus.length; i < busLength; i++{
        var map = arrbus[i];
        if (map.k == key{
          return map.v(data);
        }
      }
    }
    return new Promise((resolve, reject) => { resolve() })
  },
  on: function (key, action) {
    if (key && action{
      var map = {};
      map.k = key;
      map.v = action;
      arrbus.push(map);
    }
  },
  arr: {
    push: function (key, action) {
      if (key && action{
        var map = {};
        map.k = key;
        map.v = action;
        arrbus.push(map);
      }
    },
    pop: function (key) {
      if (key{
        for (var i = 0, busLength = arrbus.length; i < busLength; i++{
          var map = arrbus[i];
          if (map.k == key{
            map.v();
          }
        }
      }
    }
  }
}
var eventBus = new EventBus()
module.exports = {
  eventBus: eventBus
}

微信小程序 bus.js

原文:https://www.cnblogs.com/zjazn/p/14674963.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!