Skip to content

判断函数是否标记了 async

js
function af() {}
async function bf() {}

af.__proto__
ƒ () { [native code] }
bf.__proto__
AsyncFunction {Symbol(Symbol.toStringTag): 'AsyncFunction'}

可以发现二者原型不同,于是尝试 bf.constructor === AsyncFunction。但是报错:

VM5521:1 Uncaught ReferenceError: AsyncFunction is not defined
    at <anonymous>:1:20

因为 AsyncFunction 没有暴露给 js。

发现 Symbol(Symbol.toStringTag): "AsyncFunction",所以

js
Object.prototype.toString.call(bf) === '[object AsyncFunction]'
> true

bf[Symbol.toStringTag] === 'AsyncFunction'
> true
评论区
评论区空空如也
发送评论
名字
0 / 20
邮箱
0 / 100
评论内容
0 / 140
由于是非实名评论,所以不提供删除功能。如果你需要删除你发送的评论,或者是其他人的评论对你造成了困扰,请 发邮件给我 。同时评论区会使用 AI + 人工的方式进行审核,以达到合规要求。

© thebestxt.cc
辽ICP备16009524号-8
本站所有文章版权所有,转载请注明出处