在一般开发中 我们可以这样判断一个函数是否是async函数
async function test() { return "test" } console.log(test.constructor.name) //AsyncFunction |
但是,在小程序中,打开了增强编译
async function test() { return "test" } console.log(test.constructor.name) //t |
test.constructor.name 变成了 "t" 无法判断这个函数是否是async函数
编译后函数长这个样子:
ƒ test() { return _test.apply( this , arguments); } |
也就是增强编译后就无法判断原来的函数是否是async函数?
async 是一种语法糖,部分手机环境是不支持 async 的,因此增强编译会把 async 编译转换成更通用的 es5 代码。因为一些手机浏览器环境是不支持 async 的
如果需要测试的手机换机是支持 async 的,可以不设置增强编译。