如何解决eslint规则“ require-atomic-updates”?

时间:2019-11-08 14:42:17

标签: eslint

我经常理解规则背后的原因以及如何解决这些规则,但是我不理解如何解决。

值得一提的是,我已经读过docs的规则,但是没有理解

这是我收到的错误:

Possible race condition: `req.meta.pageImage` might be reassigned based on an outdated value of `req.meta.pageImage`

这是触发它的代码:

async function retailerAction(req, res) {
  const { groupId } = req.params;
  let group;
  try {
    const result = await trinidad.jupiter.callAsync({
      method: 'GET',
      path: `/marketplace/groups/${groupId}?include=group.imageId,group.name,group.description`,
      req
    });
    group = result.group;
  } catch (e) {}

  if (group.imageId) {
    req.meta.pageImage = group.imageId; // <--- error
  } else {
    req.meta.pageImage = null; // <--- error
  }

  req.renderModel = {  // <--- error
    title: { text: group.name },
    metaDescription: {
      description: normalizeDraftjsText(group.description)
    }
  };

  routeHandler(req, res);
}

1 个答案:

答案 0 :(得分:0)

我还不是100%理解它,但是我正在处理相同的问题并阅读文档,并且很确定它是由您在等待语句之前分配可变的let group触发的。

尝试在const group之后将其分配为await,并根据需要调整其他代码。