对于 “index.js不能获取app.js异步请求的动态数据” 这个问题,本人也是郁闷了好几分钟。

解决方法是:getApp().wxFunction().then(res => { })

先展示一下开始错误的代码吧

app.js:

globalData: {test: 1,
},onLaunch(options) {console.log("onLaunch");wx.request({url: 'https://www.xxx.com/api/xxx/xxx',method: 'POST',data: {test: 1},header: {'content-type': 'application/x-www-form-urlencoded'},success: res => {console.log("request");that.globalData.test = 2;}})
}

index.js:

onReady() {console.log("onReady")console.log(app.globalData.test);
},

打印结果:

此时在index.js中app.globalData.test的值是1,再看看打印的顺序,很明显wx.request的异步请求在最后,所以在index.js中并不能获取到动态数据。

接下来就是解决这个问题,这里我用的是Promise,再看看正确的代码

app.js

globalData: {test: 1
},wxLogin() {let that = this;return new Promise((resolve, reject) => {wx.request({url: 'https://www.xxx.com/api/xxx/xxx',method: 'POST',data: {test: 1},header: {'content-type': 'application/x-www-form-urlencoded'},success: function () {that.globalData.test = 2;}})})
},

index.js:

onReady() {// 这里的app已被定义 const app = getApp();app.wxLogin().then(res => {console.log(app.globalData.test);});
},

这时,app.globalData.test的值是2。

微信小程序 index.js获取app.js异步请求的动态数据相关推荐

  1. 微信小程序页面onLoad获取app.js的onLaunch数据(异步获取用户信息)

    微信小程序声明周期 小程序的生命周期,简单来说:就是app.js里的onLaunch和页面里的page.js的onLoad异步执行. 通过回调函数架构起联系,便于获取app.js内的全局数据 代码 a ...

  2. 微信小程序开发(五) - 全局(app.js)逻辑 - js 文件

    微信小程序中使用的逻辑文件 ,本质上还是.js 文件,脚本中的很多东西进行了二次封装,本质上可以在外部调试中,查看 逻辑层(App Service) 小程序开发框架的逻辑层由 JavaScript 编 ...

  3. 【微信小程序】—— 如何在app.js 和其他页面中更改globalData的值

    在其他页面page中,修改globalData的方法是: var app = getApp(); app.globalData.isLogin = true; 而在app.js中需要注意的是,应当在小 ...

  4. 微信小程序开发日志——面向对象的JS编程

    微信小程序开发日志--面向对象的JS编程 前言 不知道有多少小伙伴和之前的我一样,微信小程序的js部分都是用面向过程的方式写的,最后的结果就是代码非常长,其实刚刚写完还好,自己也都清楚哪些部分是做什么 ...

  5. 通过新浪云部署NideShop微信小程序商城(基于Node.js+MySQL+ThinkJS)

    本文档为微信小程序商城NideShop项目的安装部署教程(GitHub),欢迎star 一.购买新浪云SAE 为什么选择SAE? 免费二级域名和支持https访问,不用备案,可用于做微信小程序服务器. ...

  6. 新浪云node加mysql_通过新浪云部署NideShop微信小程序商城(基于Node.js+MySQL+ThinkJS)...

    一.购买新浪云SAE为什么选择SAE? 免费二级域名和支持https访问,不用备案,可用于做微信小程序服务器. 选择对应的部署环境 自定义 -> 开发言语:自定义 -> 运行环境:云容器 ...

  7. 微信小程序:未找到 app.json 中的定义的 pages “pages/index/index“ 对应的 WXML 文件

    微信小程序:未找到 app.json 中的定义的 pages "pages/index/index" 对应的 WXML 文件 前情:本人在自学微信小程序时,遇到了调用模板出现错误的 ...

  8. 微信小程序中调用公共的js

    微信小程序中调用公共的js 微信小程序中调用公共的js 实现思路: 将部分的js逻辑放到utils中,logs.js中调用utils.js中的方法 实现代码: utils.js: function f ...

  9. 微信小程序实现登录获取头像昵称

    微信小程序如何来获取用户头像昵称 大家一定对下面这个图不陌生吧,我们在进入小程序之前,都会遇见类似这样的情况,那么这个是怎么用微信开发者工具实现的呢? 要求 1.首先,我们打开微信开发者工具,新建一个 ...

最新文章

  1. jquery实现加载更多效果
  2. Android优化——UI优化(二) 使用include标签复用布局
  3. WebService基于SoapHeader实现安全认证[webservice][.net][安全][soapheader]
  4. boost : has_to_string的用法测试程序
  5. Android的四大组件
  6. 如何写登录的记住账号
  7. 谷歌Chrome:将逐步阻止浏览器不安全下载内容
  8. jQuery--基本选择器
  9. 曹国伟:新浪将推新社交产品与微博互补
  10. 在RobotFramework--RIDE中把日期转化为整型进行运算
  11. jenkins--master/slave模式---master是容器版---slave是非容器版
  12. iOS项目内购(IAP)纯代码
  13. 【WPF】命令 --《深入浅出WPF》
  14. 前端进阶之——CSS背景、字体和文本样式
  15. CAJ格式文件怎么转换为PDF格式
  16. 教你如何免费使用云服务器
  17. 读书笔记----《平凡的世界》第四篇
  18. linux运行360wifi,Linux(Ubuntu)下的无线网络卡上的小米和360wifi教程
  19. 在Vue中同时使用过渡和动画
  20. 数据库实验7---数据库的备份与恢复

热门文章

  1. Lua 实现Get Set属性
  2. 银河麒麟V10服务器系统安装教程及注意事项
  3. 视频号小程序也能投放朋友圈引流变现了;附带视频号运营手册丨国仁网络
  4. 备忘录吕吕没有备忘录十新建_备忘录字段焦虑
  5. r语言绘制精美pcoa图_R数据可视化4: PCA和PCoA图
  6. ElasticSearch 分片(Shards)的详解
  7. MSSQL Server 2008 - express 版 安装 企业管理器Management Studio
  8. oracle集群启动状态,循序渐进:Oracle 11.2 RAC集群进程的初始化与启动过程
  9. nginx怎么防御DDOS攻击
  10. 电子扫描件怎么弄?这个方法值得了解