获取OPENID并使用的问题

来源:24-3 对login、getUserInfo等接口的改动与理解

MaybeOneday

2018-02-08

http://img.mukewang.com/szimg/5a7c0ba800012c6a06700767.jpg

如上图所示,我在全局函数里面先用code码去请求后端的获取openId接口,然后在页面加载onLoad的时候,想用openId去调其它接口,来初始化页面的一些数据信息,现在发现,当我要用到openId的时候,返回拿不到,原因在于全局onLaunch的时候,它发现接口数据还没有返回,它就接着先加载页面的onLoad了,这时候,onLoad里面的函数要用openId,发现onLaunch的请求,接口还没有给它返回openId,所以页面onLoad的时候,就无法通过openId去做一些初始数据,请问老师,这样的情况,该怎么去处理它?是我哪里的思路错了吗?


写回答

1回答

7七月

2018-02-08

这个其实没有太好的解决办法,本身就是异步的,唯一的解决方法是,onload里面如果发现缓存中没有openid,可以去服务器去取。你TP5课程里有讲这个方案。还有你的openid真不应该返回到客户端。

0
2
7七月
回复
MaybeOneday
最好的方法还是在http请求里做一次二次调用,如果没有令牌则获取令牌。openid官方文档明确说过不建议传回客户端。如果你做服务器还是要系统的看看文档或者是相关课程。你的很多做法都不太正确。
2018-02-09
共2条回复

微信小程序入门与实战(全新版) 超20000人学习的好课

4年同步微信官方迭代,累计20000+人学习, 比微信官方更火爆!

23865 学习 · 6899 问题

查看课程