使用 Promise.map unicorn/no-array-method-this-argument 的 XO lint 问题

XO Lint Issue Using Promise.map unicorn/no-array-method-this-argument

提问人:Kevin 提问时间:4/3/2022 更新时间:4/3/2022 访问量:248

问:

我正在使用 XO 对我的代码进行 lint 检查,但我无法弄清楚为什么以下代码会报告此 lint 错误......

import Promise from 'bluebird';

const handler = items => {
  return Promise.map(items, item => {
    return Promise.resolve(item);
  });
};

export default handler;

当我将其保存到 lint-test.js,然后运行以下命令时...

npx xo lint-test.js

我收到此错误...

lint-test.js:4:29
  ✖  4:29  Do not use the this argument in Array#map().  unicorn/no-array-method-this-argument

  1 error

此规则的参考在这里...https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-array-method-this-argument.md

我一定错过了一些简单的东西。我知道这是一个过于简化的例子,但当然,在我的实际代码中,我正在用“项目”做一些更有趣的事情。

JavaScript eslint 蓝鸟

评论


答:

0赞 Bergi 4/3/2022 #1

您正在调用一个命名的方法并传递多个参数 - 这就是规则所寻找的全部内容。ESlint 规则不理解这是 bluebird 库,但认为它是一个数组,并且您正在调用 Array map 方法,其中第二个参数用于 this 参数(警告说您不应该使用该参数)。.mapPromise

这是一个误报。

从设置中删除该规则,忽略该行的规则,或创建 PR 以添加例外作为方法调用的接收者。Promise