Meteor:在服务器端组织一个循环
如何在Meteor的服务器端运行循环? 例如 我想每3秒钟向数据库添加一些内容Meteor:在服务器端组织一个循环,meteor,Meteor,如何在Meteor的服务器端运行循环? 例如 我想每3秒钟向数据库添加一些内容 for(var i = 0; i < 100; i++) { setInterval(Meteor.bindEnvironment(function() { post.type = types[getRandomInt(0,3)]; post.message = 'sometext'; post.timeCreated = new Date().value
for(var i = 0; i < 100; i++) {
setInterval(Meteor.bindEnvironment(function() {
post.type = types[getRandomInt(0,3)];
post.message = 'sometext';
post.timeCreated = new Date().valueOf();
post.source = sources[getRandomInt(0,1)];
Posts.insert(post);
console.log('New post was added.');
}, 1000));
}
for(变量i=0;i<100;i++){
setInterval(Meteor.bindEnvironment(function()){
post.type=类型[getRandomInt(0,3)];
post.message='sometext';
post.timeCreated=新日期().valueOf();
post.source=源[getRandomInt(0,1)];
员额。插入(员额);
log('添加了新的帖子');
}, 1000));
}
但是它没有任何意义:数据生成非常快,没有任何延迟。因为您对
setInterval
的理解有误,您可以找到它在
作为代码,您在循环中写入setInterval
,这相当于调用setInterval
100次。因此,每次都会向您的收藏中插入100条记录
我可以举一个例子,用两种方法每秒将记录插入Post
PS:比起Meteor.bindEnvironment,我更喜欢使用Meteor和其他Meteor方法
//首先:仅使用setInterval
函数插入器PostShandler(频率){
var计数=0;
//Meteor.setInterval将返回一个句柄
//Meteor.clearInterval可以使用它来阻止它
var insertHandler=Meteor.setInterval(函数(){
如果(计数++<频率){
post.type=类型[getRandomInt(0,3)];
post.message='some text';
post.timeCreated=新日期().valueOf();
post.source=源[getRandomInt(0,1)];
员额。插入(员额);
log('添加了新的帖子');
}否则{
//当计数>=频率时停止计时器
流星间隔(插入手柄);
}
},1000);//几乎每秒插入一条记录
}
//第二:使用setTimeout
函数插入器PostShandler(频率){
Meteor.setTimeout(insertPost,1000,0,频率);
}
//您也可以直接编写,但我更喜欢使用保存它的函数
//因为代码会更清晰
//Meteor.setTimeout(insertPost,1000,0,频率);
函数insertPost(计数、频率){
如果(计数<频率){
post.type=类型[getRandomInt(0,3)];
post.message='some text';
post.timeCreated=新日期().valueOf();
post.source=源[getRandomInt(0,1)];
员额。插入(员额);
log('添加了新的帖子');
//当计数<频率时递归调用insertPost
setTimeout(insertPost,1000,+计数,频率);
}
}
您可以使用其中任何一个来插入post记录
我希望它能有所帮助:-)因为您对
setInterval
的理解有误,您可以在
作为代码,您在循环中写入setInterval
,这相当于调用setInterval
100次。因此,每次都会向您的收藏中插入100条记录
我可以举一个例子,用两种方法每秒将记录插入Post
PS:比起Meteor.bindEnvironment,我更喜欢使用Meteor和其他Meteor方法
//首先:仅使用setInterval
函数插入器PostShandler(频率){
var计数=0;
//Meteor.setInterval将返回一个句柄
//Meteor.clearInterval可以使用它来阻止它
var insertHandler=Meteor.setInterval(函数(){
如果(计数++<频率){
post.type=类型[getRandomInt(0,3)];
post.message='some text';
post.timeCreated=新日期().valueOf();
post.source=源[getRandomInt(0,1)];
员额。插入(员额);
log('添加了新的帖子');
}否则{
//当计数>=频率时停止计时器
流星间隔(插入手柄);
}
},1000);//几乎每秒插入一条记录
}
//第二:使用setTimeout
函数插入器PostShandler(频率){
Meteor.setTimeout(insertPost,1000,0,频率);
}
//您也可以直接编写,但我更喜欢使用保存它的函数
//因为代码会更清晰
//Meteor.setTimeout(insertPost,1000,0,频率);
函数insertPost(计数、频率){
如果(计数<频率){
post.type=类型[getRandomInt(0,3)];
post.message='some text';
post.timeCreated=新日期().valueOf();
post.source=源[getRandomInt(0,1)];
员额。插入(员额);
log('添加了新的帖子');
//当计数<频率时递归调用insertPost
setTimeout(insertPost,1000,+计数,频率);
}
}
您可以使用其中任何一个来插入post记录
我希望它能有所帮助:-)因为您对
setInterval
的理解有误,您可以在
作为代码,您在循环中写入setInterval
,这相当于调用setInterval
100次。因此,每次都会向您的收藏中插入100条记录
我可以举一个例子,用两种方法每秒将记录插入Post
PS:比起Meteor.bindEnvironment,我更喜欢使用Meteor和其他Meteor方法
//首先:仅使用setInterval
函数插入器PostShandler(频率){
var计数=0;
//Meteor.setInterval将返回一个句柄
//Meteor.clearInterval可以使用它来阻止它
var insertHandler=Meteor.setInterval(函数(){
如果(计数++<频率){
post.type=类型[getRandomInt(0,3)];
post.message='some text';
post.timeCreated=新日期().valueOf();
post.source=源[getRandomInt(0,1)];
员额。插入(员额);
log('添加了新的帖子');
}否则{
//当计数>=频率时停止计时器
流星间隔(插入手柄);
}
},1000);//几乎每秒插入一条记录
}
//第二:使用setTimeout
函数插入器PostShandler(频率){
Meteor.setTimeout(insertPost,1000,0,频率);
}
//您也可以直接编写,但我更喜欢使用函数