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


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中dequeue()方法用法实例
Dec 29 Javascript
jQuery跨域问题解决方案
Aug 03 Javascript
jquery+css实现的红色线条横向二级菜单效果
Aug 22 Javascript
JS鼠标拖拽实例分析
Nov 23 Javascript
js判断手机浏览器操作系统和微信浏览器的方法
Apr 30 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
May 20 jQuery
javascript中神奇的 Date对象小结
Oct 12 Javascript
基于vue通用表单解决方案的思考与分析
Mar 16 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
Aug 17 Javascript
jQuery实现验证用户登录
Dec 10 jQuery
Vue使用JSEncrypt实现rsa加密及挂载方法
Feb 07 Javascript
vue+flask实现视频合成功能(拖拽上传)
Mar 04 Vue.js
微信小程序 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初学者头疼问题总结
2006/07/08 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
javascript 闭包疑问
2010/12/30 Javascript
JSF中confirm弹出框的用法示例介绍
2014/01/07 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
JS实现快递单打印功能【推荐】
2018/06/21 Javascript
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
python中的多线程实例教程
2014/08/27 Python
实例Python处理XML文件的方法
2015/08/31 Python
分享给Python新手们的几道简单练习题
2017/09/21 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
python 带时区的日期格式化操作
2020/10/23 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
Html5剪切板功能的实现代码
2018/06/29 HTML / CSS
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
什么是重载?CTS、CLS和CLR分别做何解释
2012/05/06 面试题
保安的辞职报告怎么写
2014/01/20 职场文书
园林系毕业生求职信
2014/06/23 职场文书
2015年感恩母亲节活动方案
2015/05/04 职场文书
导游词之韩国济州岛
2019/10/28 职场文书
导游词之镇江西津古渡
2019/11/06 职场文书
在redisCluster中模糊获取key方式
2021/07/09 Redis
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers