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


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 相关文章推荐
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
Apr 13 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
Sep 04 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
Oct 16 Javascript
12个超实用的JQuery代码片段
Nov 02 Javascript
js表单提交和submit提交的区别实例分析
Dec 10 Javascript
图文介绍Vue父组件向子组件传值
Feb 17 Javascript
JS实现判断数组是否包含某个元素示例
May 24 Javascript
监控微信小程序中的慢HTTP请求过程详解
Jul 05 Javascript
layUI实现三级导航菜单效果
Jul 26 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
Nov 14 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
Jun 02 Javascript
JavaScript小技巧带你提升你的代码技能
Sep 15 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
php 数组的合并、拆分、区别取值函数集
2010/02/15 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
javascript Prototype 对象扩展
2009/05/15 Javascript
js对象关系图 方便dom操作
2012/03/18 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
2015/02/27 Javascript
js数组去重的方法汇总
2015/07/29 Javascript
jquery实现定时自动轮播特效
2015/12/10 Javascript
jquery动态添加文本并获取值的方法
2016/10/12 Javascript
bootstrap table动态加载数据示例代码
2017/03/25 Javascript
详解vue嵌套路由-params传递参数
2017/05/23 Javascript
微信小程序实现下拉菜单切换效果
2020/03/30 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
python动态加载变量示例分享
2014/02/17 Python
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
Django 对IP访问频率进行限制的例子
2019/08/30 Python
python脚本实现mp4中的音频提取并保存在原目录
2020/02/27 Python
Matlab使用Plot函数实现数据动态显示方法总结
2021/02/25 Python
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
行政人事岗位职责
2014/03/17 职场文书
做一个有道德的人活动方案
2014/08/25 职场文书
设备技术员岗位职责
2015/04/11 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android
sqlserver连接错误之SQL评估期已过的问题解决
2022/03/23 SQL Server