web-dev-qa-db-ja.com

async await-ESLint require-atomic-updatesの競合状態エラー

以下のコードは、 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に基づいて再割り当てされる可能性があります

6
laukok

私はこの回答には少し遅れていると思いますが、.eslintrc.jsonまたは使用する関連構成のいずれかを指定します。

"require-atomic-updates": "off"

2
kyapwc