ESLint 报错:'async' is not defined 解决方案

阅读时长 3 分钟读完

在开发前端项目时,我们经常使用异步函数来异步处理代码,例如使用 asyncawait 关键字。然而,在检验代码时,有时候我们会在 ESLint 报错中看到 ‘async’ is not defined 的错误提示。

这个错误提示的意思是ESLint无法识别 async 关键字。这是由于ESLint在验证代码时默认只是基于 ES5 版本进行代码检查,而 async 早在ES6中就已经被引入了,所以需要在 ESLint 的配置中指定编译环境。

解决方案

在项目的根目录下创建 .eslintrc.js 文件,并在该文件中配置编译环境。假设我们需要编译环境为 ES2017(包含 async),则配置文件如下:

-- -------------------- ---- -------
-------------- - -
  ---- -
    -------- -----
    ---- -----
    ----- -----
    ------- ----- -- ---------
  --
  -------- -
    ---------------------
    ---------------------------
  --
  -------------- -
    ------------- -
      ---- -----
    --
    ------------ --
    ----------- ---------
  --
  -------- -
    --------
  --
  ------ -
    -- ---
  --
--

上述配置中,我们在 env 中增加了 es2017 环境变量,在 parserOptions 中设置了 ecmaVersion 为 8(即对应 ES2017 版本),sourceType 设置为 ‘module’(表明使用 ECMAScript 模块化机制),从而产生指令的用户本地环境。可以根据需要进行灵活修改以配置适合本地环境的编译环境。

示例代码

下面是一段使用 asyncawait 的示例代码:

-- -------------------- ---- -------
----- -------- -------------- -
  ----- -------- - ----- ------------------------------------------------------
  ----- ---- - ----- ----------------
  ------ -----
-

------------------------ -- -
  ------------------
-------------- -- -
  ---------------------
---

以上代码使用了 asyncawait,从而避免了使用回调函数时的回调地狱。在使用 ESLint 进行代码检查时,只需要按上述说明配置一下环境变量即可正常运行,看到使用 async 关键字时再也不会报错了。

总结

通过上述解决方案,我们可以使用 asyncawait 进行异步处理,从而使代码更加简洁易读,避免回调地狱,有效提高开发效率。同时也展示了如何通过配置 ESLint 的编译环境解决 ESLint 报错问题。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/654e07e37d4982a6eb75ac6d

纠错
反馈