小程序
小游戏
企业微信
微信支付
扫描小程序码分享
有一个获取用户信息的方法,方法和获取的信息存全局变量,写在app.js里面,现在有两种方式:
不知道哪种更好?
5 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
用户信息存到全局变量里就好了啊... 为什么会需要在每个页面的onload里重新调用方法去拿用户的信息?
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
写成一个公共函数,在首页里调用,调用后写到globalData里;
除了首页,只有进入小程序会第一个打开的页面,比如分享卡片点击打开小程序进入某页面,这样的页面需要单独调用一次获取用户信息,其他页面,肯定比异步时间落后,直接globalData即可。
app.js
let userInfo getUserInfo() { return new Promise((resolve, reject) => { if (userInfo) { resolve(userInfo); } else { // 异步请求 setTimeout(() => { userInfo = res.data resolve(res.data); }) } }); }
其他调用页面:
getUserInfo().then(res => { })
不知道这样你能理解不
当然是放全局比较合适咯,这个问题我专门写了个帖子分析,有完美的解决方案。
这个库能轻松解决99%的异步和逻辑加载时机问题(异步篇)? - 微信开放社区 https://developers.weixin.qq.com/community/develop/article/doc/000eae817f8828bf905d767cd5f413
小程序app.onLaunch与page.onLoad异步问题的最佳实践? - 微信开放社区 https://developers.weixin.qq.com/community/develop/article/doc/00002ac57208f0e7335d111f156013
存储到全局gloablData好一些
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
用户信息存到全局变量里就好了啊... 为什么会需要在每个页面的onload里重新调用方法去拿用户的信息?
在对应页面的onload函数使用async/await 这样获取全局变量
图2是async/await的使用
只需要在小程序落地页onload这样写一次,确保是异步执行的,能拿到数据
写成一个公共函数,在首页里调用,调用后写到globalData里;
除了首页,只有进入小程序会第一个打开的页面,比如分享卡片点击打开小程序进入某页面,这样的页面需要单独调用一次获取用户信息,其他页面,肯定比异步时间落后,直接globalData即可。
app.js
let userInfo getUserInfo() { return new Promise((resolve, reject) => { if (userInfo) { resolve(userInfo); } else { // 异步请求 setTimeout(() => { userInfo = res.data resolve(res.data); }) } }); }
其他调用页面:
不知道这样你能理解不
当然是放全局比较合适咯,这个问题我专门写了个帖子分析,有完美的解决方案。
这个库能轻松解决99%的异步和逻辑加载时机问题(异步篇)? - 微信开放社区 https://developers.weixin.qq.com/community/develop/article/doc/000eae817f8828bf905d767cd5f413
小程序app.onLaunch与page.onLoad异步问题的最佳实践? - 微信开放社区 https://developers.weixin.qq.com/community/develop/article/doc/00002ac57208f0e7335d111f156013
存储到全局gloablData好一些