我正在编写JavaScript(> ECMAScript 6),我无法想象如何在扩展类'方法中调用超类'异步方法。 这就是我想要做的事情:
class SuperClass {
constructor(){}
async method() {
return;
}
}
class ExtendClass extends SuperClass {
constructor() {
super();
}
async method() {
return super.method();
}
}
以上不会编译,将其视为错误:
SyntaxError: 'super' keyword unexpected here
at Object.<anonymous> (Path/To/File.js:line:character)
我是否真的想做一些不可能的事情?谷歌似乎没什么用的..
等待对超类的调用没有帮助,它有助于拥有不同的方法名称 - 唯一有帮助的是使扩展类'方法非异步。
答案 0 :(得分:3)
这是由于测试框架TestCafe中使用的转换(如@Bergi所述)。我将把问题引导到其他地方。感谢您的评论。
<强>更新强>
这是TestCafe框架(link to bug)中的一个错误。 解决方法如下:
async method () {
return await SuperClass.prototype.method.call(this)
}