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


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导航制件jquery鼠标经过变色效果示例
Dec 05 Javascript
让checkbox不选中即将选中的checkbox不选中
Jul 11 Javascript
node.js中的fs.appendFile方法使用说明
Dec 17 Javascript
举例简介AngularJS的内部语言环境
Jun 17 Javascript
用js实现博客打赏功能
Oct 24 Javascript
JavaScript微信定位功能实现方法
Nov 29 Javascript
Vue源码学习之初始化模块init.js解析
Nov 02 Javascript
AngularJs 禁止模板缓存的方法
Nov 28 Javascript
javascript按顺序加载运行js方法
Dec 01 Javascript
layui table 表格模板按钮的实例代码
Sep 21 Javascript
JavaScript实现Excel表格效果
Feb 07 Javascript
vue中渲染对象中属性时显示未定义的解决
Jul 31 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
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
PHP 实例化类的一点摘记
2008/03/23 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
prettify 代码高亮着色器google出品
2010/12/28 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
JQUERY 设置SELECT选中项代码
2014/02/07 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
AngularJs表单验证实例代码解析
2016/11/29 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
js 获取html5的data属性实现方法
2017/07/28 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
2018/08/31 Javascript
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
全网小程序接口请求封装实例代码
2020/11/06 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
Python爬取数据并写入MySQL数据库的实例
2018/06/21 Python
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
python tkinter基本属性详解
2019/09/16 Python
python 魔法函数实例及解析
2019/09/25 Python
Python类继承和多态原理解析
2020/02/05 Python
Python关于反射的实例代码分享
2020/02/20 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
TripAdvisor德国:全球领先的旅游网站
2017/12/07 全球购物
意大利独特而优质的家居用品:Fazzini
2018/12/05 全球购物
采购员岗位职责
2013/11/15 职场文书
督导岗位职责范本
2015/04/10 职场文书
党小组评议意见
2015/06/02 职场文书
Spring Data JPA使用JPQL与原生SQL进行查询的操作
2021/06/15 Java/Android
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技
Python基本知识点总结
2022/04/07 Python