如果我在节点控制台中运行以下代码,我会假设。
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db){
if (err) throw err;
db.collection('allClasses').findOne({}, function(err, doc){
//Print the result
console.dir(doc);
//close the DB
db.close();
});
});
setTimeout(function(){
console.dir("10 Milliseconds!");
}, 10);
setTimeout(function(){
console.dir("100 Milliseconds!");
}, 100);
如果我一直(10次中有10次)获得以下输出:
这表明mongo查询不仅需要10到100毫秒 返回我的数据,但我的节点控制台以异步方式执行我的代码。
问题:这是对的吗?
我有一个替代问题。
如果我等待很长时间来执行此脚本,请说20分钟,让我的mongod.exe运行。然后运行脚本。有时我得到以下输出。
我可以理解最后的数据返回,我假设因为某些原因需要超过100毫秒可能与连接有关,或者因为我等了很长时间才需要更长时间,因为mongod是空闲的或者是什么东西那些线......
问题2:为什么超时的消息功能会首先出现?
我知道必须有一个愚蠢的理由。