以下のコードは、 ESLint でチェックすると競合状態を引き起こしています。
let match = false
try {
match = await something()
} catch (err) {
// do something
}
if (match === false) {
// do something
}
このコードブロックを記述するより良い方法は何ですか?
編集:
let request = ctx.request.body || {}
let password = request.password
let match = false
try {
match = await bcrypt.compare(password, 'xxxxx')
} catch (err) {
ctx.throw(401, err)
}
if (match === false) {
ctx.throw(401, 'invalid password')
}
ctx.body = {
message: 'logged in ok'
}
ESLintからのエラー:
可能な競合状態:
ctx.body
は、古い値ctx.body
require-atomic-updatesに基づいて再割り当てされる可能性があります
私はこの回答には少し遅れていると思いますが、.eslintrc.json
または使用する関連構成のいずれかを指定します。
"require-atomic-updates": "off"