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


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:将其它类型值转换成布尔类型值的解决方法详解
May 07 Javascript
Jquery如何实现点击时高亮显示代码
Jan 22 Javascript
JS案例分享之金额小写转大写
May 15 Javascript
JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)
Jan 13 Javascript
Ajax清除浏览器js、css、图片缓存的方法
Aug 06 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
bootstrap timepicker在angular中取值并转化为时间戳
Jun 13 Javascript
vue-resource拦截器设置头信息的实例
Oct 27 Javascript
vue中使用localstorage来存储页面信息
Nov 04 Javascript
微信小程序wx:for循环的实例详解
Oct 07 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
Aug 13 Javascript
Layui 数据表格批量删除和多条件搜索的实例
Sep 04 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
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
PHP 读取和编写 XML
2014/11/19 PHP
php检查日期函数checkdate用法实例
2015/03/19 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
非常实用的12个jquery代码片段
2015/11/02 Javascript
js实现微信分享代码
2020/10/11 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
利用JS提交表单的几种方法和验证(必看篇)
2016/09/17 Javascript
用AngularJS来实现监察表单按钮的禁用效果
2016/11/02 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
2017/03/30 Javascript
python用字典统计单词或汉字词个数示例
2014/04/22 Python
python中的全局变量用法分析
2015/06/09 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
python实现数据分析与建模
2019/07/11 Python
python通过http下载文件的方法详解
2019/07/26 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
2021/03/04 Python
html5 postMessage前端跨域并前端监听的方法示例
2018/11/01 HTML / CSS
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
高中自我鉴定
2013/12/20 职场文书
自荐信格式模板
2015/03/27 职场文书
高中政治教师教学反思
2016/02/23 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书