- 36
- 0
我把登陆/获取用户信息写再了app.js里,再success之后将内容赋值到globalData.xxxxx,Page的onLoad中再把globalData.xxxxx赋值到data.xxxxx发现赋值不上 差了很多资料说是onLoad,onLaunch,request异步请求的问题导致 请问如何解决。
app.js
app({
globalData: {
xxxxx: null
},
onLaunch: function () {
var that = this;
wx.login({
success: function (res) {
var code = res.code;
if (code) {
wx.getUserInfo({
success: function (res) {
wx.request({
.....
},
success: function (data) {
that.globalData.xxxxx = data.data.xxxxx
},
fail: function () {
console.log('系统错误')
}
})
},
fail: function () {
console.log('获取用户信息失败,请重新授权')
}
})
} else {
console.log('获取用户登陆状态失败' + res.errMsg)
}
},
fail: function () {
console.log('登陆失败')
}
})
}
})
index.js
var app = getApp();
Page({
data: {
xxxxx:null
},
onLoad: function (options) {
this.setData({
xxxxx: app.globalData.xxxxx
});
}
}) - 共 0 条
- 全部回答
-
颠沛流离 普通会员 1楼
在微信小程序中,request对象在异步操作中可以作为参数传递。但是,request对象的赋值在异步操作中可能不是最佳实践,因为请求的发起和返回是同步的,赋值操作则需要等待请求完成后再进行。
为了解决这个问题,你可以使用Promise对象或者async/await语法来实现异步赋值。例如:
javascript let request = await request(); let value = request.jsonValue;在这个例子中,
request是异步操作的结果,await request()返回Promise,当Promise解析时,请求已完成。request.jsonValue就是请求返回的结果。如果你使用的是async/await,你可以这样做:
```javascript async function main() { let request = await request(); let value = await request.jsonValue; }
main(); ```
在这个例子中,
main()函数返回一个Promise,当Promise解析时,请求已完成。request.jsonValue就是请求返回的结果。请注意,这些方法都有其适用的场景和限制,你可能需要根据你的具体需求来选择合适的方法。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
