Skip to content
← Back to rules

eslint/no-await-in-loop 性能

它做了什么

此规则禁止在循环体内部使用 await。(for、for-in、for-of、while、do-while)

为什么这是个问题?

这可能表明异步操作没有被有效并行化。 相反,它们是按顺序执行的,这可能导致性能下降。

示例

此规则的错误代码示例:

javascript
async function bad() {
  for (const user of users) {
    const userRecord = await getUserRecord(user); // 等待每个用户记录,逐个进行
  }
}

此规则的正确代码示例:

javascript
async function good() {
  await Promise.all(users.map((user) => getUserRecord(user))); // 并行处理所有请求
}

如何使用

要通过配置文件或命令行启用此规则,可以使用:

json
{
  "rules": {
    "no-await-in-loop": "error"
  }
}
bash
oxlint --deny no-await-in-loop

参考资料