我们已经在节点应用程序b/c中部署了错误,我们忘记用“await”作为前缀异步函数调用。如何在Node + Typescript + VSCode中查找Async函数调用时缺少的等待状态?
例子:
const getUsers = async() => db.query('SELECT * from Users');
const testMissingAwait = async() => {
const users = getUsers(); // <<< missing await
console.log(users.length);
};
testMissingAwait();
有一种简单的方法来找到异步函数调用缺少的await关键字?
如果失败了,编写一个Visual Studio代码扩展会自动标记这些扩展会花多少功夫? (如果有人能指出我正确的方向,我就可以解决问题了)。
该功能是否需要异步?它有什么收益吗? (getUsers) –
你在这个项目中使用打字稿吗?如果是这样,它应该在编译时捕获该错误,因为类型'Promise'没有属性“长度”。 –
CRice
@因为Promise没有属性“长度”,所以你的工作方式是“users.length”,但如果你忘记等待一个没有返回值的异步函数,那么Typescript将不会帮助你使用这个机制。有谁知道是否有可以检测到异步函数调用的Typescript设置(或其他linter),您不会等待并将它们标记为可能的错误(您可以使用指令仅在您想启动异步工作时显式忽略而不是等待它)? –