收藏
回答

增强编译后如何判断原函数是否async函数?

在一般开发中  我们可以这样判断一个函数是否是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函数?


最后一次编辑于  11-20
回答关注问题邀请回答
收藏

1 个回答

  • cover
    cover
    11-20

    async 是一种语法糖,部分手机环境是不支持 async 的,因此增强编译会把 async 编译转换成更通用的 es5 代码。因为一些手机浏览器环境是不支持 async 的

    如果需要测试的手机换机是支持 async 的,可以不设置增强编译。

    11-20
    赞同
    回复
问题标签