小程序
小游戏
企业微信
微信支付
扫描小程序码分享
很好奇为什么setData会在getUserInfo之前执行。求大佬指点迷津。
请无视我代码的弱智逻辑。。。。。。。。。回答下执行顺序的问题就好。
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
async await 搞定
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
是从上往下执行(下达)命令,但不是必须等待上一个命令有结果才执行下一个命令。同步函数就等待,异步函数就不等待。getUserInfo 显示是一个异步函数(有then)。
异步函数是 js 的优势之一。可以在异步函数前加 await 关键字转换为同步函数来执行。
同步异步问题,getUserInfo是网络请求属于异步耗时操作,getUserInfo执行后还没有返回结果之前,下一个setData已经开始执行了,所以setData取不到getUserInfo中的返回值
异步问题,可以百度搜一下js异步。 GetInfo中请求了云函数,需要时间返回结果,但js不会主动等待结果返回,继续执行,就会走setdata。在请求的.then回调里写setdata就可以同步。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
async await 搞定
是从上往下执行(下达)命令,但不是必须等待上一个命令有结果才执行下一个命令。同步函数就等待,异步函数就不等待。getUserInfo 显示是一个异步函数(有then)。
异步函数是 js 的优势之一。可以在异步函数前加 await 关键字转换为同步函数来执行。
同步异步问题,getUserInfo是网络请求属于异步耗时操作,getUserInfo执行后还没有返回结果之前,下一个setData已经开始执行了,所以setData取不到getUserInfo中的返回值
异步问题,可以百度搜一下js异步。 GetInfo中请求了云函数,需要时间返回结果,但js不会主动等待结果返回,继续执行,就会走setdata。在请求的.then回调里写setdata就可以同步。