выполняется сразу.

ользую Node.js с MongoDB, я также использую Monk для доступа к БД. У меня есть код ниже:

console.time("start");

collection.findOne({name: "jason"},
function(err, document) {

  for(var i = 0; i < document.friends.length; i++) // "friends is an array contains ids of the user's friends"
  {
    collection.findOne({id: document.friends[i]}, function(err, doc)
    {
      console.log(doc.name);
    });
   }

});

console.log("The file was saved!");
console.timeEnd("start");

У меня есть два вопроса относительно этого кода:

Я вижу время выполнения и "Файл был сохранен!" Сначала строка, затем я вижу имена друзей, приходящих в консоль. Почему это? Разве я не должен видеть имена сначала, тогда время выполнения? Это потому что асинхронная природа Node.js?Имена печатаются в консоли очень медленно, скорость равна одному имени за две секунды. Почему это так медленно? Есть ли способ сделать процесс быстрее?

РЕДАКТИРОВАТЬ:

Является ли хорошей идеей разбить список друзей на более мелкие части и вызвать друзей асинхронно? Это сделает процесс быстрее?

РЕДАКТИРОВАТЬ 2:

Я изменил свой код на это:

collection.find({ id: { "$in": document.friends}}).then(function(err, doc)
{
  console.log(doc.name);

      if(err) {
      return console.log(err);
       }
}

Это не выдает ошибку, но и ничего не печатает.

Заранее спасибо.

Ответы на вопрос(0)

Ваш ответ на вопрос