微信小程序 闭包写法详细介绍


Posted in Javascript onDecember 14, 2016

微信小程序 闭包写法

在入口处的 app.js 中定义了一个获取用户 OpenId 的函数,在微信的登录接口 wx.login 中发起网络请求。这个函数传入一个回调函数 cb

getOpenIdData: function(cb) {
  var that = this
  //调用登录接口
  wx.login({
    success: function(res) {
      wx.request({
        url: 'https://api.weixin.qq.com/sns/jscode2session',
        data: {
          appid: "wx6224eb*********",
          secret: "879b58fc64bc5**************",
          js_code: res.code,
          grant_type: "authorization_code"
        },
        success: function(res) {
          // 保存到全局变量中
          that.globalData.openid = res["data"]["openid"]
          cb(that.globalData.openid)
        },
        fail: function() {
          console.log("request error")
        }
      })
    }
  })
}

在 index.js 文件时,使用 getOpenIdData 接口

var app = getApp()
app.getOpenIdData(function(openid){
  //回调更新数据
  that.setData({
  openid: openid
  })
})

在接口中传入匿名函数

function(openid){
  //回调更新数据
  that.setData({
  openid: openid
  })
}

先将匿名函数传入到 app.js 中,获取到 openid 数据。再回到 index.js 将数据赋给此文件的全局变量。这样就实现跨文件传递数据。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
jQuery中element选择器用法实例
Dec 29 Javascript
jQuery实现复选框批量选择与反选的方法
Jun 17 Javascript
利用JavaScript脚本实现滚屏效果的方法
Jul 07 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
Apr 13 Javascript
老生常谈 关于JavaScript的类的继承
Jun 24 Javascript
js实现移动端微信页面禁止字体放大
Feb 16 Javascript
微信小程序滚动Tab实现左右可滑动切换
Aug 17 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
Oct 20 Javascript
vue组件与复用详解
Apr 08 Javascript
微信小程序显示倒计时功能示例【测试可用】
Dec 03 Javascript
解决webpack多页面内存溢出的方法示例
Oct 08 Javascript
js和jquery判断数据类型的4种方法总结
Aug 28 jQuery
微信小程序 wx.uploadFile无法上传解决办法
Dec 14 #Javascript
bootstrap日历插件datetimepicker使用方法
Dec 14 #Javascript
详解jQuery停止动画——stop()方法的使用
Dec 14 #Javascript
实例解析Array和String方法
Dec 14 #Javascript
利用JavaScript实现拖拽改变元素大小
Dec 14 #Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
Dec 14 #Javascript
浅谈Javascript中的Label语句
Dec 14 #Javascript
You might like
比较好用的PHP防注入漏洞过滤函数代码
2012/04/11 PHP
一页面多XMLHttpRequest对象
2007/01/22 Javascript
转一个日期输入控件,支持FF
2007/04/27 Javascript
不错的JS中变量相关的细节分析
2007/08/13 Javascript
JQuery动画和停止动画实例代码
2013/03/01 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
2013/04/01 Javascript
Bootstrap Table的使用总结
2016/10/08 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
2016/10/24 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
nodejs个人博客开发第二步 入口文件
2017/04/12 NodeJs
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
Weex开发之地图篇的具体使用
2019/10/16 Javascript
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
python脚本作为Windows服务启动代码详解
2018/02/11 Python
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
浅谈Python 敏感词过滤的实现
2019/08/15 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
python 的topk算法实例
2020/04/02 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
农行实习自我鉴定
2013/09/22 职场文书
岗位标兵事迹材料
2014/05/17 职场文书
公司行政管理制度范本
2015/08/05 职场文书
教师素质教育心得体会
2016/01/19 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
浅谈Redis的keys命令到底有多慢
2021/10/05 Redis
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA