【发布时间】:2020-06-17 11:38:14
【问题描述】:
我有一个非常简单的问题,我一直在寻找但找不到解决方案。
获取该代码:
class Foo {
bar = () => {
return 'string'
}
baz = async() => {
return 'promise'
}
}
我想知道某个类的特定方法是否异步。
isAsync(Foo, 'bar') // false
isAsync(Foo, 'baz') // true
问题是......我不想实例化它。 我发现的所有解决方案都在类实例上使用“getOwnPropertyNames”来获取函数。
有可能吗?
谢谢! ????
【问题讨论】:
-
在您的示例中没有实例化是不可能的,因为在创建实例之前
bar和baz不存在。 -
检查这不是一个好主意。任何异步函数都可以很容易地重构为返回承诺的普通函数,反之亦然,这不应该影响运行时行为。例如,如果您的
bar函数执行了bar = () => this.baz();,您真的会期望它的行为与baz直接不同吗?
标签: javascript class asynchronous ecmascript-6