收藏
回答

接口返回的数据使用setData存起来,想在页面渲染,结果获取不到数据?(在onLoad中调用)

在里面可以获取到,外层获取不到。求大神帮助,刚接触小程序

回答关注问题邀请回答
收藏

4 个回答

  • 我有一只傻狍子
    我有一只傻狍子
    2020-05-15

    调用的网络请求是异步执行的,在发出请求之后,console.log('out',xxxx)就会执行了,此时接口还并未返回数据。console.log('inner',xxxx)是网络请求返回之后在回调中执行的(其实是getMeasureResultById函数返回的promise实例的then方法之中执行) ,所以控制台打印的数据,console.log('out',xxxx)在前,console.log('inner',xxxx)在后。

    2020-05-15
    有用 1
    回复
  •  
     
    2020-05-15

    请求是异步的,只有在请求回来的时候才开始调用回调函数,执行 out 个时候请求都还没回来,所以你的 out 会执行在 inner 的前面,所以拿不到数据,建议使用 promise 或者回调地狱

    2020-05-15
    有用 1
    回复 1
    • evynCheung
      evynCheung
      2020-05-15
      多谢大佬
      2020-05-15
      回复
  • Mr.Zhao
    Mr.Zhao
    2020-05-15

    又是异步,天天都有人问,这不是小程序独有的,async await 了解一下

    2020-05-15
    有用 1
    回复 1
    • evynCheung
      evynCheung
      2020-05-15
      知道有这个概念,结果就陷在里面了
      2020-05-15
      回复
  • 金柯
    金柯
    2020-05-15

    建议先了解js的异步执行

    2020-05-15
    有用 1
    回复
登录 后发表内容
问题标签