背景: 小程序A共享环境给小程序B, 在B中使用跨环境调用云函数.
问题: 使用安卓手机测试没问题, 可以正常调用云函数并返回结果. 在IOS中首次进入可以正常访问, 从第二次调用开始就会出现拿不到云函数返回结果的情况. 检查云函数日志, 请求已经被处理并返回response, 说明云函数端没问题.
小程序端调用云函数代码如下:
debug发现执行到`const { result } = await cloud.getLiveRoomList(0)`时阻塞, promise对象状态为pending.
尝试更换IOS手机型号测试, 稳定复现.
IOS版本: 14.4
微信版本: 8.0.2
已解决.
方法:
在每次调用云函数前都做一次`(new wx.cloud.Cloud(...).init())`, 这个Cloud类型的对象不能被复用, 需要随用随new.
有的老苹果手机,不能完全支持async/await。
勾选增强编译,不行的话再勾选es6转es5,如果还是不行,全部改成es5语法。