作者: 蒋欢
在部分IOS机型上,小程序内使用原生promise实现异步,在嵌套四层后,Promise的resolve和reject均无返回。
用户机型:iPhone 7
系统版本:IOS 10.3.3
微信版本:6.5.21
部分ios用户可以稳定复现。
微信侧表示IOS 10下小程序使用的是原生的promise,页面由 WKWebView 来渲染的。因此网页也会有同样的问题,但我们还未在H5下得到验证。
之前微信曾修复过IOS 8 下类似问题记录。
换成第三方库pinkie.js,实现promise,用户问题得到解决。
目前还没有遇到任何兼容性问题上报,但pinkie里手动实现的promise比系统原生promise要慢一点。 如果进行异步操作并全局赋值时,要注意异步返回生效的时机。