标签:stores 微信 通信 ._ var cb event store 页面
1.新建一个js页面 event.js,里面放三个调用函数,并把这三个函数暴露出去
function on(event, fn, ctx) { if (typeof fn != "function") { console.error('fn must be a function') return } this._stores = this._stores || {} ; (this._stores[event] = this._stores[event] || []).push({ cb: fn, ctx: ctx }) } function emit(event) { this._stores = this._stores || {} var store = this._stores[event], args if (store) { store = store.slice(0) args = [].slice.call(arguments, 1) for (var i = 0, len = store.length; i < len; i++) { store[i].cb.apply(store[i].ctx, args) } } } function off(event, fn) { this._stores = this._stores || {} // all if (!arguments.length) { this._stores = {} return } // specific event var store = this._stores[event] if (!store) return // remove all handlers if (arguments.length === 1) { delete this._stores[event] return } // remove specific handler var cb for (var i = 0, len = store.length; i < len; i++) { cb = store[i].cb if (cb === fn) { store.splice(i, 1) break } } return } module.exports = { on: on, emit: emit, off: off }
2.app.js中引用这个js文件
const Event = require('/pages/event') App({ event: Event,
3.主页面注册监听
onl oad() { app.event.on('afterPaySuccess', this.afterPaySuccess, this) }, afterPaySuccess: function (orderId) { // 如果index为1输出orderid的Value if(orderId.index===1){ console.log("输出1"+orderId.value ) }else{ console.log("输出不是1" ) } },
4.副页面发送数据,主页面收到数据
var data1 = [0xAE, 5, 9, 0x07] var mydata = { index: 1, value: data1 } app.event.emit('afterPaySuccess', mydata)
看网上大神的日志,不喜勿喷
标签:stores,微信,通信,._,var,cb,event,store,页面 来源: https://www.cnblogs.com/Ocean123123/p/12493264.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。