VenusYan 2023-05-11 11:55 采纳率: 100%
浏览 22
已结题

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);
  })
  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2023-05-11 12:02
    关注

    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)
            }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月31日
  • 已采纳回答 5月23日
  • 修改了问题 5月11日
  • 创建了问题 5月11日

悬赏问题

  • ¥15 rt-thread线程切换的问题
  • ¥20 python忆阻器数字识别
  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊