变量定义域的问题?
发布于 5 年前 作者 qinqiang 9992 次浏览 来自 问答
    bqj_dayHTs.get().then(res=>{
      this.setData({
        dayHTs:res.data
      })
      // this.oper(res.data)
      console.log("~~~dayHTs1",this.data.dayHTs)
    })
    console.log("~~~dayHTs2",this.data.dayHTs)

为什么第二个变成undefined了,应该如何赋值,谢谢

2 回复

多了解一下 js的事件循环、宏任务、微任务的执行次序,程序执行时候,请求相当于一个promise异步执行,放入微任务队列。此时setData中的值还未设定,然后执行同步代码

console.log("~~~dayHTs2",this.data.dayHTs) 此时为undefined,整个同步任务执行完之后,再去查看异步任务情况,然后在进行setData的处理,setData的设置分为视图渲染和js逻辑层

这些多了解,就知道运行的结果为什么是这个样子

你这个问题是异步赋值问题,先打印后请求的,所以获取不到,写到then里面

回到顶部