目前我将登录操作写在了 app.js 中, 获取到微信的 code 后,向自己的服务器获取验证 access-token .
代码如下
app.js
onLaunch: function () {
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
config.code = res.code;
this.initUserInfo();
}
})
},
// 初始化用户信息
initUserInfo: function () {
wx.request({
url: config.baseUrl + "/index.php?m=Api&c=User&a=initUserInfo",
method: 'POST',
header: {
"Content-Type": "application/x-www-form-urlencoded"
},
data: {
source_type: 'wxapp',
code: config.code,
},
success: function (res) {
if (res.data.status == true) {
config.uid = res.data.data.uid;
config.accessToken = res.data.data.wxapp_access_token;
} else if (res.data.status == false) {
console.log(res.data.data);
} else {
}
}
})
},
在另一个文件 met.js 中需要通过获取的 uid accessToken 来请求获取数据.
代码如下
met.js
eggGetRemoteWords: function() {
var self = this;
wx.request({
url: app.config.baseUrl + "/index.php?m=Api&c=Learning&a=getLearningWord",
method: 'POST',
header: {
"Content-Type": "application/x-www-form-urlencoded"
},
data: {
uid: app.config.uid,
access_token: app.config.accessToken
},
success: function (res) {
if (res.data.status == true) {
self.setData({
'word.wordArray': res.data.data,
})
但是目前总是 met.js 中的函数 eggGetRemoteWords 总早于 app.j s中 initUserInfo 登录函数执行,导致无法获取到数据 因为 js 异步的原因. 请问大家这应该怎么处理呢? 我了解到 promise 请问如果目前的需求将如何实现呢?
临摹微笑
largeQ
相关分类