4

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

我真的在尝试做一些不可能的事情吗?谷歌似乎没有任何有用的东西..

等待对超类的调用无济于事,使用不同的方法名称也无济于事——唯一有帮助的是使扩展类的方法非异步。

4

1 回答 1

3

这是由于测试框架 TestCafe 中使用的转译(如@Bergi 所述)。我将把这个问题引向别处。感谢您的评论。

更新

这是目前 TestCafe 框架中的一个错误(链接到错误)。解决方法如下:

async method () {
    return await SuperClass.prototype.method.call(this)
}
于 2018-01-22T11:45:08.437 回答