【问题标题】:Is there an ESlint rule for adding async when using await in a function?在函数中使用 await 时是否有用于添加异步的 ESlint 规则?
【发布时间】:2019-05-26 06:12:36
【问题描述】:

我有时开始用 JavaScript 编写一个函数,不知道我是否需要它异步。然后我需要使用 await 关键字:我希望 ESlint 自动更正并将 async 关键字添加到我的函数中。

例如:

function foo() {
  const bar = await baz()
}

将转换为:

async function foo() {
  const bar = await baz()
}

有没有自动修复的 ESlint 规则?

也许有人会说将不正确的代码自动更正为正确的代码是没有意义的。在这种情况下,该人是否有其他建议来提高编写该类型代码的便利性?

编辑:代码语法不正确。因此 ESlint 只会引发“解析错误”。因此,对于文本编辑器来说,这是一个更多的问题:是否有 VS Code 扩展为这种语法错误添加快速修复选项? “将周围的函数标记为异步”之类的?

EDIT 2:这在创建测试时特别有用。

it("is correct", () => {
  expect(isCorrect()).toBe(true)
})

it("is correct", async () => {
  expect(await isCorrect()).toBe(true)
})

都是有效的语法。在更改测试代码以添加 await 关键字时,函数自动将自身标记为异步而不是当前行为非常有用。

【问题讨论】:

  • 这不是 linter 会做的,这是一个直接的语法错误。
  • 我有时开始用 JavaScript 编写一个函数,不知道我是否需要它异步” - 听起来你应该花更多时间来设计你的架构开始写代码。您应该始终了解函数会做什么,以及是否异步是合同的重要组成部分。不要简单地“添加一个async 关键字”,因为您认为它可能很方便。如果您开始编写同步方法,请尝试保持同步,直到您意识到您不能。当这种情况发生时,重新设计时要考虑到异步并重新开始。
  • 好的,我知道这是一个语法错误。也许这更像是一个 VS Code 问题? VS Code 向我显示了我的代码中的语法错误:如果它提供“快速修复提示”以使我的函数异步,我会很高兴。我完全理解它对我的代码有影响,并且异步函数不等同于同步函数。但有时,在高层次上,我只需要一个函数来让我返回一些结果,无论是否异步。我喜欢 async / await 语法如何让我在不改变一切的情况下快速转向异步代码。
  • 我猜这可能是对 JavaScript/TypeScript 语言服务器的功能请求

标签: javascript visual-studio-code async-await eslint


【解决方案1】:

它现在适用于我的设置!如果其他人仍有问题,我可以进一步挖掘如何启用相同的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-14
    • 2018-11-04
    • 2021-10-25
    • 2015-06-28
    • 2017-02-02
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    相关资源
    最近更新 更多