我在以下代码的第一行收到consistent-return
ESLint error。
return new Promise((resolve, reject) => {
if (condition) {
asyncMethod.then(data => {
return resolve(syncMethod());
}, err => reject(err));
} else {
return resolve(syncMethod());
}
});
返回不一致的缺失情况是什么?如何修复?
答案 0 :(得分:1)
您不会在此if
块中返回值:
if (condition) {
asyncMethod.then(data => {
return resolve(syncMethod());
}, err => reject(err));
}
这意味着如果undefined
为true,函数将返回condition
,但如果为false,则返回resolve函数的结果。
答案 1 :(得分:1)
ESlint没有注意到这一点,但你应该avoid the Promise
constructor 一起完成!
return (condition ? asyncMethod : Promise.resolve()).then(data => syncMethod());
返回不一致的缺失情况是什么?
你并没有return
来自promise构造函数中if
块的任何东西。或者更确切地说,您不应return
阻止resolve()
块中else
调用的结果。