收藏
回答

wx.getSetting,promise后还是异步执行?如何解决呢?

问题是:对promise不太理解,wx.getSetting是异步执行导致不能及时返回结果,用了promise定义函数,调用定义的函数时,它还是异步,应该怎么办呢

本来想判断用户是否有授权,所以调用wx.Setting查询,然后将结果赋予给全局变量ifuserLocation,但是因为它异步的问题,致使拿不到值

后来用promise定义了函数,然后前面调用,但是调的时候还是异步,应该怎么办呢?

希望有经验的指导一下。

console输出:

回答关注问题邀请回答
收藏

2 个回答

  • Vic陈焱林
    Vic陈焱林
    2020-08-07
    await new Promise((resolve, reject) => {
      wx.getSetting({
        complete:(res)=> {
          resolve(res)
        }
      })
    })
    
    2020-08-07
    有用 1
    回复 1
    • 保卫虎鲸
      保卫虎鲸
      2020-08-24
      这个才是正解.
      2020-08-24
      回复
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2020-07-09

    wx.getSetting 就已经是promise的了

    直接 wx.getSetting().then() 就可以了呀

    async onLoad(){
        let setting = await wx.getSetting()
        this.setData({
            ifuserLocation: setting.authSetting && setting.authSetting['scope.userLocation'] ? !0 : !1
        })
    
    }
    

    若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人

    2020-07-09
    有用 1
    回复 6
    查看更多(1)
登录 后发表内容
问题标签