js promise函数书写

怎么将这段代码封装成一个promise函数
目标是确保调用此函数judgelocation后可以使用then确保locationavailable(页变量)的值已经被改变,可以被后续代码使用


wx.getLocation({
    type: 'wgs84',
    isHighAccuracy: true,
    highAccuracyExpireTime: 3000,
    success: function (res) {
      var latitude = res.latitude
      var longitude = res.longitude
      var horizontalAccuracy = res.horizontalAccuracy
      if ((latitude-horizontalAccuracy*0.00000899<latitudemin)&&(latitude+horizontalAccuracy*0.00000899>latitudemin)&&(longitude-horizontalAccuracy*0.00001141<longitudemin)&&(longitude+horizontalAccuracy*0.00001141>longitudemax)){
        locationavailabe: true;
      } else {
        console.log(phone,res.latitude,res.longtitude,res.horizontalAccuracy);
      }
    },
    resolve(locationavailabe);
  })

wx.getLocation原本就支持promise调用啊,干嘛还要自己包一层promise?如果是要确保locationavailabe被复制后再执行后续代码,调用的函数加async,然后await等待wx.getLocation执行完毕后赋值

大概下面这样

        async doSomething() {
            await wx.getLocation({
                type: 'wgs84',
                isHighAccuracy: true,
                highAccuracyExpireTime: 3000,
                success: function (res) {
                    var latitude = res.latitude
                    var longitude = res.longitude
                    var horizontalAccuracy = res.horizontalAccuracy
                    if ((latitude - horizontalAccuracy * 0.00000899 < latitudemin) && (latitude + horizontalAccuracy * 0.00000899 > latitudemin) && (longitude - horizontalAccuracy * 0.00001141 < longitudemin) && (longitude + horizontalAccuracy * 0.00001141 > longitudemax)) {
                        locationavailabe = true;
                    } else {
                        console.log(phone, res.latitude, res.longtitude, res.horizontalAccuracy);
                    }
                },
               resolve(locationavailabe);
            })

//后续需要使用到locationavailabe的代码
            console.log('11', locationavailabe)
        }

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632