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


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下获取鼠标位置的代码
Dec 18 Javascript
js 走马灯简单实例
Nov 21 Javascript
javascript页面上使用动态时间具体实现
Mar 18 Javascript
javascript中checkbox使用方法实例演示
Nov 19 Javascript
JQuery解析XML的方法小结
Apr 02 Javascript
超简单的Vue.js环境搭建教程
Mar 17 Javascript
Angularjs 实现动态添加控件功能
May 25 Javascript
bootstrap daterangepicker汉化以及扩展功能
Jun 15 Javascript
如何在项目中使用log4.js的方法步骤
Jul 16 Javascript
vue 解决遍历对象显示的顺序不对问题
Nov 07 Javascript
微信小程序 this.triggerEvent()的具体使用
Dec 10 Javascript
vue3 自定义图片放大器效果的示例代码
Jul 23 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 Session会话超时时间设置方法
2014/06/10 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
编写可维护面向对象的JavaScript代码[翻译]
2011/02/12 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
2016/06/12 Javascript
angular分页指令操作
2017/01/09 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
浅谈Vue.js路由管理器 Vue Router
2018/08/16 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
Python 实现字符串中指定位置插入一个字符
2018/05/02 Python
Python使用Pickle模块进行数据保存和读取的讲解
2019/04/09 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
pycharm工具连接mysql数据库失败问题
2020/04/01 Python
Python2.6版本pip安装步骤解析
2020/08/17 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
2020/12/08 Python
CSS3中Transform动画属性用法详解
2016/07/04 HTML / CSS
HTML5 input placeholder 颜色修改示例
2014/05/30 HTML / CSS
英国鞋类及配饰零售商:Kurt Geiger
2017/02/04 全球购物
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
班主任工作经验材料
2014/02/02 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
门店店长岗位职责
2015/04/14 职场文书
2016学雷锋优秀志愿者事迹材料
2016/02/25 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书
干货干货!2019最新优秀创业计划书
2019/03/21 职场文书
Promise静态四兄弟实现示例详解
2022/07/07 Javascript