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


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 相关文章推荐
js监听输入框值的即时变化onpropertychange、oninput
Jul 13 Javascript
打印json对象的内容及JSON.stringify函数应用
Mar 29 Javascript
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
Apr 21 Javascript
JavaScript匿名函数用法分析
Feb 13 Javascript
jQuery Raty 一款不错的星级评分插件
Aug 24 Javascript
webpack 2.x配置reactjs基本开发环境详解
Aug 08 Javascript
Vue中添加手机验证码组件功能操作方法
Dec 07 Javascript
vue初尝试--项目结构(推荐)
Jan 30 Javascript
Vue常用指令详解分析
Aug 19 Javascript
JavaScript变速动画函数封装添加任意多个属性
Apr 03 Javascript
element-ui组件中input等的change事件中传递自定义参数
May 22 Javascript
如何在vue 中引入使用jquery
Nov 10 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中::、->、self、$this几种操作符的区别介绍
2013/04/24 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
2020/11/23 PHP
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
2013/06/24 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
原生js模拟淘宝购物车项目实战
2015/11/18 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
在页面中引入js的两种方法(推荐)
2017/08/29 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
详解js中的几种常用设计模式
2020/07/16 Javascript
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
python 类对象和实例对象动态添加方法(分享)
2017/12/31 Python
对Python3中的input函数详解
2018/04/22 Python
Python的条件表达式和lambda表达式实例
2019/01/31 Python
详解Python 解压缩文件
2019/04/09 Python
谈一谈基于python的面向对象编程基础
2019/05/21 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
对django views中 request, response的常用操作详解
2019/07/17 Python
Django Rest framework三种分页方式详解
2019/07/26 Python
Python实现把类当做字典来访问
2019/12/16 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
西班牙拥有最佳品牌的动物商店:Animalear.com
2018/01/05 全球购物
如何整合JQuery和Prototype
2014/01/31 面试题
信息管理员岗位职责
2013/12/01 职场文书
退休教师欢送会致辞
2015/07/31 职场文书