выполняется сразу.
ользую 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);
}
}
Это не выдает ошибку, но и ничего не печатает.
Заранее спасибо.