收藏
回答

既然javascript是从上往下执行的,为什么在onLoad生命周期里,setData会先执行呢?

很好奇为什么setData会在getUserInfo之前执行。求大佬指点迷津。

请无视我代码的弱智逻辑。。。。。。。。。回答下执行顺序的问题就好。


最后一次编辑于  2022-10-05
回答关注问题邀请回答
收藏

4 个回答

  • 三秋秋采药四球球熬
    三秋秋采药四球球熬
    2022-10-06

    async await 搞定


    2022-10-06
    有用 1
    回复
  • 张业贵
    张业贵
    2022-10-06

    是从上往下执行(下达)命令,但不是必须等待上一个命令有结果才执行下一个命令。同步函数就等待,异步函数就不等待。getUserInfo 显示是一个异步函数(有then)。

    异步函数是 js 的优势之一。可以在异步函数前加 await 关键字转换为同步函数来执行。

    2022-10-06
    有用 1
    回复
  • 赵宁
    赵宁
    2022-10-05

    同步异步问题,getUserInfo是网络请求属于异步耗时操作,getUserInfo执行后还没有返回结果之前,下一个setData已经开始执行了,所以setData取不到getUserInfo中的返回值

    2022-10-05
    有用 1
    回复
  • ⅴ
    发表于小程序端
    2022-10-05

    异步问题,可以百度搜一下js异步。 GetInfo中请求了云函数,需要时间返回结果,但js不会主动等待结果返回,继续执行,就会走setdata。在请求的.then回调里写setdata就可以同步。

    2022-10-05
    有用 1
    回复
登录 后发表内容