小程序
小游戏
企业微信
微信支付
扫描小程序码分享
问题是:对promise不太理解,wx.getSetting是异步执行导致不能及时返回结果,用了promise定义函数,调用定义的函数时,它还是异步,应该怎么办呢
本来想判断用户是否有授权,所以调用wx.Setting查询,然后将结果赋予给全局变量ifuserLocation,但是因为它异步的问题,致使拿不到值
后来用promise定义了函数,然后前面调用,但是调的时候还是异步,应该怎么办呢?
希望有经验的指导一下。
console输出:
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
await new Promise((resolve, reject) => { wx.getSetting({ complete:(res)=> { resolve(res) } }) })
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
wx.getSetting 就已经是promise的了
直接 wx.getSetting().then() 就可以了呀
async onLoad(){ let setting = await wx.getSetting() this.setData({ ifuserLocation: setting.authSetting && setting.authSetting['scope.userLocation'] ? !0 : !1 }) }
若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
await new Promise((resolve, reject) => { wx.getSetting({ complete:(res)=> { resolve(res) } }) })
wx.getSetting 就已经是promise的了
直接 wx.getSetting().then() 就可以了呀
async onLoad(){ let setting = await wx.getSetting() this.setData({ ifuserLocation: setting.authSetting && setting.authSetting['scope.userLocation'] ? !0 : !1 }) }
若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人