【问题标题】:Can I receive a warning when I fail to await a Promise in TypeScript? [duplicate]当我在 TypeScript 中等待 Promise 失败时会收到警告吗? [复制]
【发布时间】:2021-04-26 20:52:28
【问题描述】:

TypeScript 允许指定函数的返回类型:

function delay(ms: number): Promise<void> {
    return new Promise( resolve => setTimeout(resolve, ms) )
}

我经常忘记等待返回 Promise 的函数:

let waited = 0 
while (accessible === false && waited < MAX_DELAY) {
  waited += DELAY_MS
  delay(DELAY_MS) // oh no, this won't work correctly
  accessible = await this.dbAccessible()
}

TypeScript (tsserver) 会在我等待一个 不是承诺的表达式时警告我

'await' 对这个表达式的类型没有影响

如果我未能等待 一个承诺的表达式,我可以让tsserver(或其他东西,如 linter)警告我吗?我知道这有时是有效的(并且我已经使用过),但在我的经验中,这比忘记等待我打算等待的承诺要少见。

【问题讨论】:

    标签: typescript promise async-await


    【解决方案1】:

    您可以使用 TSLint 的 no-floating-promises 规则,该规则强制执行该规则

    [p]函数返回的承诺必须得到适当的处理。

    更多关于规则here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-13
      • 1970-01-01
      • 2020-04-04
      • 2015-09-27
      • 2023-04-02
      相关资源
      最近更新 更多