在扩展 class 中从异步方法调用 super class' 异步方法
Calling super class' async method from async method in extending class
我正在编写 JavaScript(> ECMAScript 6),但我不知道如何在扩展 class' 方法中调用超级 class' 异步方法。
这就是我想要做的:
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)
我真的在尝试做一些不可能的事情吗?似乎无法 Google 任何有用的东西..
等待对超级 class 的调用无济于事,拥有不同的方法名称也无济于事 - 唯一有帮助的是使扩展 class' 方法非异步。
这是由于测试框架 TestCafe 中使用的转译(如@Bergi 所述)。我会把问题指向别处。感谢评论。
更新
目前这是 TestCafe 框架 (link to bug) 中的一个错误。
解决方法如下:
async method () {
return await SuperClass.prototype.method.call(this)
}
我正在编写 JavaScript(> ECMAScript 6),但我不知道如何在扩展 class' 方法中调用超级 class' 异步方法。 这就是我想要做的:
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)
我真的在尝试做一些不可能的事情吗?似乎无法 Google 任何有用的东西..
等待对超级 class 的调用无济于事,拥有不同的方法名称也无济于事 - 唯一有帮助的是使扩展 class' 方法非异步。
这是由于测试框架 TestCafe 中使用的转译(如@Bergi 所述)。我会把问题指向别处。感谢评论。
更新
目前这是 TestCafe 框架 (link to bug) 中的一个错误。 解决方法如下:
async method () {
return await SuperClass.prototype.method.call(this)
}