【小程序踩坑系列5】小程序内多重调用原生promise,无返回,无报错,代码卡住...

针对iOS10.3.3微信6.5.21版本中,原生Promise嵌套四层后失效的问题,通过引入pinkie.js第三方库得以解决。此问题与WKWebView渲染有关,更换Promise实现在H5环境下未见类似故障。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者: 蒋欢

问题:

在部分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要慢一点。 如果进行异步操作并全局赋值时,要注意异步返回生效的时机。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值