Estoy usando XO para filtrar mi código, y no puedo entender por qué se informa este error de pelusa para el siguiente código...
import Promise from 'bluebird'; const handler = items => { return Promise.map(items, item => { return Promise.resolve(item); }); }; export default handler;Cuando guardo esto en lint-test.js, y luego ejecuto el siguiente comando...
npx xo lint-test.jsme sale este error...
lint-test.js:4:29 ✖ 4:29 Do not use the this argument in Array#map(). unicorn/no-array-method-this-argument 1 errorLa referencia para esta regla está aquí... https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-array-method-this-argument.md
Debo estar perdiendo algo simple. Sé que este es un ejemplo demasiado simplificado, pero por supuesto, en mi código real, estoy haciendo algo más interesante con "elemento".
Está llamando a un método llamado .map y pasando más de un argumento: esto es todo lo que busca la regla. La regla ESlint no entiende que Promise es la biblioteca bluebird pero cree que es una matriz y que está llamando al método de map de matriz , donde el segundo parámetro es para this argumento (y que la advertencia dice que no debe usar ).
Es un falso positivo.
Elimine la regla de su configuración, ignórela para esa línea o haga un PR para agregar una excepción para Promise como receptor de la llamada al método.