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


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 学习笔记 选择器之三
Jul 23 Javascript
按Enter键触发事件的jquery方法实现代码
Feb 17 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
Jul 27 Javascript
深入了解JavaScript中的Symbol的使用方法
Jul 28 Javascript
AngularJS模块学习之Anchor Scroll
Jan 19 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
Apr 29 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
Dec 13 Javascript
求js数组的最大值和最小值的四种方法
Mar 03 Javascript
关于Javascript中document.cookie的使用
Mar 08 Javascript
vue.js整合mint-ui里的轮播图实例代码
Dec 27 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
Nov 09 Javascript
vue实现图片上传功能
May 28 Javascript
微信小程序 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
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
2014/07/19 PHP
推荐几个开源的微信开发项目
2014/12/28 PHP
php实现的二分查找算法示例
2017/06/20 PHP
PHP Laravel 上传图片、文件等类封装
2017/08/16 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
兼容Mozilla必须知道的知识。
2007/01/09 Javascript
JS input 数字验证代码
2009/07/30 Javascript
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
文本框输入时 实现自动提示(像百度、google一样)
2012/04/05 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
使用Vue写一个datepicker的示例
2018/01/27 Javascript
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
JavaScript undefined及null区别实例解析
2020/07/21 Javascript
详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)
2020/07/21 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
Python读取网页内容的方法
2015/07/30 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
python tkinter canvas 显示图片的示例
2019/06/13 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
三个Unix的命令面试题
2015/04/12 面试题
2014年党员发展工作总结
2014/12/02 职场文书
Nginx配置https原理及实现过程详解
2021/03/31 Servers
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS