我有以下代码段:
const enclosing = () => {
const setClaim = (userId, claim) => {
client
.setClaim({ userId, claim })
.then(() => {
// do something
return resolve(true);
}, // eslint complains about this line
err => reject(err)
);
});
};
ESLint抱怨上面标记的行如下:
139:9 error Expected indentation of 6 spaces but found 8 indent
哪个indent
规则对象选项适用于此处(必须更改),因为我希望缩进按原样保留?
我不想使用eslint-disable-line
来抑制ESLint错误,因为这是一个全局(适用于我的所有代码被删除)问题。
答案 0 :(得分:5)
如果你到达这里寻找Promise Indent答案,就像我一样(见标题)...... ESLint Indent rules的MemberExpression部分可能会有所帮助。成员表达式“强制执行多行属性链的缩进级别”。
您可以通过在"MemberExpression"
文件中将"Off"
设置为.eslintrc.js
来关闭检查链式方法的缩进。
rules: {
'indent': ['error', 4, { 'MemberExpression': 'off'}]
}
将MemberExpression设置为“off”,您可以缩进或排列承诺。
排队
client
.setClaim({ userId, claim })
.then(resolve(true), reject)
<强>缩进强>
client
.setClaim({ userId, claim })
.then(resolve(true), reject)
答案 1 :(得分:0)
const enclosing = () => {
const setClaim = (userId, claim) => {
client
.setClaim({ userId, claim })
.then(() => {
// ^ insert a newline here
// do something
return resolve(true);
}, // eslint complains about this line
err => reject(err)
);
});
};
我建议在实现处理程序之前添加新行。由于您为.then
提供了两个处理程序,因此可以使它们保持在相同的缩进级别。