根据meteor docs,insert block:
在服务器上,如果您不提供回调,则插入块 直到数据库确认写入,否则抛出异常 有些不对劲。如果您确实提供了回调,请插入静止 立即返回ID。
所以这是错误的:
Meteor.methods({
post: function (options) {
return Stories.insert(options)
}
});
我需要这样做:
Meteor.methods({
post: function (options) {
return Stories.insert(options, function(){})
}
});
有人可以确认是这种情况吗?前者将阻止整个服务器直到db返回?
答案 0 :(得分:2)
是的,它会阻止,但不会阻止整个服务器。
在Meteor中,您的服务器代码在每个请求的单个线程中运行,而不是以Node的典型异步回调样式运行。我们发现线性执行模型更适合Meteor应用程序中的典型服务器代码。
所以,如果你担心它会阻塞整个服务器,就像在典型的Node中一样,不要这样做。