request get到的数据解析后,在另外一个函数调用显示未定义?

获取到数据解析出来需要的结果,赋值给recmsg

hq() {
    uni.request({/*省略*/},
        success: (res) => {
            console.log("js", res.data);
            // var recmsg=""; 全局去声明了
            var current_value="";
             recmsg=res.data.data.current_value;
            // console.log(recmsg) 此处可以打印出来需要的结果是字符串
        },    
    });
}

在另外一个函数想调用recmsg,显示 [Number] 111 , undefined

do() {
  let arr = listBytes.kzkg[4].DO;
  this.fs(arr)  //给平台发命令,设备执行操作,设备会给平台返回状态数据
  this.hq() // 获取到设备给平台返回的数据解析并执行下一步操作
  {console.log(111,recmsg)}
}

该怎么操作不明白了,请各位大咖指点

阅读 1.5k
2 个回答

success 是异步返回的,如果想在另外的函数里调用异步返回的值,需要等待异步处理结束。
常用的方式 1.async await 2.Promise

async hq() {
  await uni.request.....
}

async do() {
  await this.hq()
  console.log(recmsg)
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题