Lazulitecn 2022-01-13 08:53 采纳率: 84.8%
浏览 70
已结题

请问JS为什么设置变量值不成功,钉钉宜搭


export function getgps() {
  var j = 0;
  var w = 0;
  loadDDApi.then(() => {
    dd.ready(() => {
      // 获取当前地理位置信息(单次定位)
      dd.device.geolocation.get({
        targetAccuracy: 200,
        coordinate: 1,
        withReGeocode: true,
        useCache: true, 
        onSuccess: function (result) {
          var j = result.longitude;//这里经纬度赋值失败
          var w = result.latitude//这里经纬度赋值失败
          alert(result.longitude);//这里能正常弹窗提示经纬度的值
        },
        onFail: function (err) { }
      });
    })
  })
  this.$("textField_kybrsytl").setValue(j);//设置文本框,j的值还是0
  this.$('numberField_kybrsytm').setValue(w);//设置数值框,w的值还是0
}

请问为什么设置选项框内容 j和w 为什么赋值变量失败了呢?

  • 写回答

7条回答 默认 最新

  • Rattenking Python领域优质创作者 2022-01-13 09:22
    关注
    1. js 运行机制先同步任务 后异步任务
    2. then 属于异步任务的微观任务
    3. 也就说按照你的代码,同步执行var j = 0;this.$("textField_kybrsytl").setValue(j);异步值没有作用复制到文本;
    4. 所以将设置值放到异步任务的成功函数里,进行赋值;
    5. 还要注意this的指向,留住this。
    
     
    export function getgps() {
      var j = 0;
      var w = 0;
      var _this = this;
      loadDDApi.then(() => {
        dd.ready(() => {
          // 获取当前地理位置信息(单次定位)
          dd.device.geolocation.get({
            targetAccuracy: 200,
            coordinate: 1,
            withReGeocode: true,
            useCache: true, 
            onSuccess: function (result) {
              var j = result.longitude;
              var w = result.latitude;
              _this.$("textField_kybrsytl").setValue(j);
              _this.$('numberField_kybrsytm').setValue(w);
            },
            onFail: function (err) { }
          });
        })
      })
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 1月21日
  • 已采纳回答 1月13日
  • 创建了问题 1月13日

悬赏问题

  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画