在扩展类中从异步方法调用超类'异步方法

时间:2018-01-22 10:14:28

标签: javascript ecmascript-6 async-await ecmascript-2017 testcafe

我正在编写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)

我是否真的想做一些不可能的事情?谷歌似乎没什么用的..

等待对超类的调用没有帮助,它有助于拥有不同的方法名称 - 唯一有帮助的是使扩展类'方法非异步。

1 个答案:

答案 0 :(得分:3)

这是由于测试框架TestCafe中使用的转换(如@Bergi所述)。我将把问题引导到其他地方。感谢您的评论。

<强>更新

这是TestCafe框架(link to bug)中的一个错误。 解决方法如下:

async method () {
    return await SuperClass.prototype.method.call(this)
}