typescript - 当 Promise 返回类型未等待时在 VS Code 中发出警告?
问题描述
我正在使用 Visual Studio Code 打字稿,我想知道是否有办法让编辑器在有异步函数调用时显示某种警告(函数返回 a Promise
)但调用者不等待它(这样程序员会不会意外地假设一个函数是同步的并这样使用它)。
解决方案
只要您使用的是 typescript,类型系统就会提醒您,无论您在何处使用该 promise 的已解析值,都不能使用该 promise:
function foo(): Promise<number> {
return new Promise(resolve => resolve(123))
}
const myNumber: number = foo() // forgot await
// ^ Type 'Promise<number>' is not assignable to type 'number'.
所以,实际上,打字稿已经做了你想要的,只是不是你想的那样。
此外,有很好的理由表明可能不会等待承诺。一个可能是你想要一堆并行的异步操作,所以你收集 Promise 并传递它们Promise.all
。或者也许您处于不允许的顶层await
,而使用它更简单then
。
因此,只需让类型系统按预期工作,不要担心。当您开始实际使用等待的值时,如果做错了,就会出现上述类型的错误。
推荐阅读
- javascript - 如何在 jquery 中仅选择启用的复选框?
- python - Python/Flask ImportError:没有已知父包的尝试相对导入
- java - 意外元素“{http://maven.apache.org/POM/4.0.0}project”{antlib:org.apache.tools.ant}project
- python - 无法在 postgres 中截断表
- c# - 对 datagridview 中的多个数字求和,然后对特定列中的单元格值求和
- node.js - 节点 JS 不使用 SendGrid 工作无效的电子邮件地址
- c# - 质数验证器代码块让我在 C# 中转换问题
- android - 尝试使用 RetrofitClient 登录用户时回调类型不匹配 kotlin
- powerapps - 在 Powerapp 中计算图库中数字的平均值
- python - 在python中的匹配元素上合并两个多维列表