小程序基础库2.32.1 连续执行setTimeout存在较大误差
小程序最近没有发布,但是从上周五开始陆陆续续有用户反馈有问题,经过统计发现,都是安卓用户,各品牌型号都有,而且是使用的微信8.0.37。 经过测试,安卓手机,微信版本8.0.34正常,但是升级到8.0.37后就存在问题。 后进一步发现是小程序基础库2.32.1的问题 ,连续执行setTimeout存在较大误差导致的,该版本在微信开发者工具的模拟器以及真机调试都正常,但是在手机上运行可以看出明显误差。 例如运行以下代码,每隔15毫秒执行定时器,小程序基础库2.32.0和2.32.1有较大的误差 [图片][图片] function sleep(ms = 0, txt) {
return new Promise((resolve) => {
let t = Date.now();
setTimeout(
function () {
resolve();
console.log(txt, Date.now() - t);
},
ms
);
});
}
for (let i = 0; i < 100; i++) {
await sleep(15, `定时器 第${i}次`);
}