在我的代码中,我有一个用户名数组。我试图通过每个名称,检查用户是否存在于数据库中并创建用户。问题是,我的短毛猫在我标记的地方说了'await' has no effect on the type of this expression:

await Promise.all(
  userNames.map(async userName => {
    const user = await users.findOne({ name: userNames });

    if (!user)
      await users.create({ // Linter marks this bracket (Not the curly bracket)
        name: userName,
      }); // And this end bracket
  }),
);

我的编辑建议是这样的:

  if (user) {
    return;
  }
  await users.create({
    name: userName,
  });

翻转if else。知道为什么吗?

最佳答案

问题是,users.create并非等待的 promise !找到它的一种好方法是单击ctrl +单击该方法并检查其类型定义。

关于javascript - 在if块中使用await时,“await”对此表达式的类型没有影响,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59114874/

10-16 19:42