Цикл for не проходит в цикле синхронно с вызовом мангусты - PullRequest
0 голосов
/ 16 июня 2019

Я должен пройтись по списку пользователей и найти в базе данных mongo, существует ли она в этом случае, пропустить запись, если нет, то вставить запись

Я пробовал с async и await, я не могу использовать обратный вызов, так как мне нужно ждать, пока каждая итерация завершится

Я вижу, что вызов срабатывает еще до завершения предыдущей итерации. Мне нужно, чтобы он был синхронизирован, так как мне нужно проверить, если документ уже существует или нет.

async function excelProcessing(res) {
  {
    for (index = 0; index < jsonData.length; index++) {
      await excelProcessingStep2(jsonData[index]);
    }

    res.send("done")
  }

  async function excelProcessingStep2(item) {
    subRoleData = JSON.parse(JSON.stringify(item))

    await collection.findOne({
      "$and": findCritList
    }, {
      "users": 1
    }, function(err, result) {
      //console.log(result)
      // console.log(item["No"],item["Sub Role Name"])
      if (err) {
        //console.log("Error")
      }
      if (result == null) {
        collection.create(newSubRoleDoc);

        // //Insert into Audit
        collectionAudit.create(newSubRoleDoc);
      }

      if (result) {
        console.log("Already Exists")
      }
    })
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...