我正在将一个使用回调的库改为使用Promises。当我使用then()
时它能够工作,但是当我使用await
时它不起作用。
> dbc.solve
[AsyncFunction]
> await dbc.solve(img)
await dbc.solve(img)
^^^^^
SyntaxError: await is only valid in async function
dbc.solve的代码如下:
module.exports = DeathByCaptcha = (function() {
function DeathByCaptcha(username, password, endpoint) {
...
}
DeathByCaptcha.prototype.solve = async function(img) {
return new Promise(
function(resolve, reject) {
...
}
);
};
})();
我相信这与solve
是prototype
的成员有关,但我找不到任何相关信息。我发现Node.js并非一直支持类方法的异步等待(详情请看这里),所以我从Node.js 7升级到了Node.js 9.4.0。