刚开始学,很多原理的东西不是很了解,请大家帮帮忙。
如下代码:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var counter = 1;
var Cat = mongoose.model('Cat', {
name: String
});
var kitty = new Cat({
name: 'Zildjian'
});
for (i = 1; i < 1000; i++) {
console.log("loop start");
kitty.save(function(err) {
console.log("saved " + counter++);
if (err) // ...
console.log('meow');
});
console.log("loop end");
}
在我的预期中,循环在跑的过程中会有数据插入到数据库,但是事实并非如此。要等到循环结束,才开始有数据插入。我觉着即使循环是一个cpu密集操作,有可能会阻塞回调函数的执行,但是数据库io应该是在不同的线程里执行的,应该可以正常插入。
请大家帮忙释疑。 谢谢。