代码中出现 performance 会导致运行bug
你好,本人是跨端的SDK开发。SDK要求一套代码可以运行在Web、小程序等环境中。我们代码中有一个地方用到了 performance,如果 performance不存在的话,会退避使用 Date: if (!(performance && performance.now)) return Date.now()
else return performance.now()
上面的代码在小程序真机中,会抛出 ReferenceError: performance is not defined。虽然小程序中有一个 wx.getPerformance 函数,会返回类似于浏览器的 performance对象,但是不管如何,上面的代码,按照JS语言的理解,也不应该抛出异常,并阻塞后续的流程。 我不太清楚微信小程序内部运行的具体机制是什么,但是目前似乎碰到 performance 这个对象,就会直接阻塞后续流程,这让我感觉这个运行环境,有非常多不确定的地方。请问能不能解释下微信为什么碰到 performance 就会报错?然后还有哪些对象有同样的问题?作为开发者应该如何避免这个问题?让这个问题更糟糕的是,这个东西只有在真机上运行才会出现。这意味着在模拟器上跑的自动化测试也是无效的。 最简的复现步骤: // pages/index.js
Page({
onLoad() {
console.log('performance', performance)
}
})
[图片]