小程序
小游戏
企业微信
微信支付
扫描小程序码分享
云函数获取的数据赋值本地后,云函打印正常,但云函数外面打印异常
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
根据你的log日志和代码截图
wx.cloud.callFunction({}) 和 console.log('tmp2') 是属于同一个方法内且是同级关系
由于 wx.cloud.callFunction 是一个异步函数
所以就会先输出 tmp2,待 wx.cloud.callFunction 执行完毕后,输出 tmp1,赋值是在输出 tmp1的时候才进行赋值
所以在输出 tmp2的时候,根本还没有赋值,自然就是这个结果
要想在外边使用 deptInfo,必须得保证 赋值完成后才可以使用
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
云函数外这个函数在哪里呢?
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
根据你的log日志和代码截图
wx.cloud.callFunction({}) 和 console.log('tmp2') 是属于同一个方法内且是同级关系
由于 wx.cloud.callFunction 是一个异步函数
所以就会先输出 tmp2,待 wx.cloud.callFunction 执行完毕后,输出 tmp1,赋值是在输出 tmp1的时候才进行赋值
所以在输出 tmp2的时候,根本还没有赋值,自然就是这个结果
要想在外边使用 deptInfo,必须得保证 赋值完成后才可以使用
1、使用callback,将wx.cloud.callFunction({})封装到一个方法中,通过callback回调中执行你所需要的方法,这里可以做个优化,在封装的方法中,如果存在,直接返回callback,否则再去获取数据
2、使用Promise,与callback方法几乎一致,返回方式稍微不同
加延迟不可取,由于并不能保证什么时间能获取到数据,时间太长,体验非常不好,时间太短,可能还是拿不到值,况且网络环境的好坏更是无法控制
云函数外这个函数在哪里呢?