使用' async'时出现ESLINT解析错误

时间:2017-06-10 20:30:07

标签: eslint

我正在使用ESLINT来分析我的代码。代码运行正常。我不知道如何解决这个问题。

[eslint]解析错误:意外的令牌t

(参数)t:任何

test.serial(`set: Handles save error`, async t => {
  const error = new Error(`error`);
  const sample = getSample();

  sample.mocks.datastore.save.returns(Promise.reject(error));

  const err = await t.throws(
    sample.program.set(sample.mocks.req, sample.mocks.res)
  );
  t.deepEqual(err, error);
  t.deepEqual(console.error.callCount, 1);
  t.deepEqual(console.error.firstCall.args, [error]);
  t.deepEqual(sample.mocks.res.status.callCount, 1);
  t.deepEqual(sample.mocks.res.status.firstCall.args, [500]);
  t.deepEqual(sample.mocks.res.send.callCount, 1);
  t.deepEqual(sample.mocks.res.send.firstCall.args, [error]);
});

此处.eslintrc.js

module.exports = {   extends: 'google',   parserOptions: {
    ecmaVersion: 6,   }, };

3 个答案:

答案 0 :(得分:9)

async / await是一项ECMAScript 2017功能,因此如果您更改ecmaVersion: 8而不是6,这应该可以使用!

答案 1 :(得分:1)

我遇到了类似的问题并解决了编辑 package.json 第 5 行的问题。

我删除了“。”那是在“eslint”之后,现在一切都很好。

答案 2 :(得分:0)

即使您使用最新版本的 ECMAScript,您也可能会遇到此错误,如果是这种情况(就像我一样),问题可能出在您的配置中:

"space-before-function-paren": [
  "error",
  "never"
]

如果你有这个,你应该改变:

"space-before-function-paren": [
  "error",
  {
    "anonymous": "never",
    "named": "never",
    "asyncArrow": "always"
  }
],

您可以在此 issue on GitHub 中找到。