ESLint 报错:'Promise' is not defined

在前端开发中,我们经常使用 Promise 对象来处理异步操作。然而,在使用 ESLint 进行代码检查时,有时会出现 'Promise' is not defined 的错误提示。这是因为 ESLint 默认情况下不认识 Promise 对象,需要进行一些配置才能解决这个问题。

解决方法

方法一:配置 ESLint

在项目的根目录下创建一个 .eslintrc.js 文件,并添加以下配置:

module.exports = {
  env: {
    browser: true,
    es6: true
  },
  extends: [
    'eslint:recommended',
    'plugin:vue/essential'
  ],
  parserOptions: {
    ecmaVersion: 2018,
    sourceType: 'module'
  },
  rules: {
    'no-console': 'off',
    'no-unused-vars': 'off',
    'no-undef': 'off'
  }
}

在 rules 中添加 'no-undef': 'off' 配置,表示关闭对未定义变量的检查。

方法二:使用 eslint-plugin-promise 插件

安装 eslint-plugin-promise 插件:

npm install eslint-plugin-promise --save-dev

在 .eslintrc.js 文件中添加以下配置:

module.exports = {
  env: {
    browser: true,
    es6: true
  },
  extends: [
    'eslint:recommended',
    'plugin:vue/essential'
  ],
  parserOptions: {
    ecmaVersion: 2018,
    sourceType: 'module'
  },
  plugins: [
    'promise'
  ],
  rules: {
    'no-console': 'off',
    'no-unused-vars': 'off',
    'promise/param-names': 'error',
    'promise/catch-or-return': 'error',
    'promise/no-return-wrap': 'error',
    'promise/always-return': 'error',
    'promise/no-native': 'off',
    'no-undef': 'off'
  }
}

在 plugins 中添加 'promise' 插件,并配置相关规则,如 'promise/param-names': 'error' 表示检查 Promise 的参数命名是否符合规范。

示例代码

function fetchData() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('data')
    }, 1000)
  })
}

async function getData() {
  const data = await fetchData()
  console.log(data)
}

getData()

如果没有进行配置,使用 ESLint 进行检查会出现 'Promise' is not defined 的错误提示。配置后,就可以正常使用 Promise 对象了。

总结

ESLint 是一个非常好用的代码检查工具,但有时会出现一些问题,需要进行一些配置才能解决。本文介绍了解决 'Promise' is not defined 错误提示的两种方法,希望对大家有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65bb0757add4f0e0ff39d6b8