Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor:在服务器端组织一个循环_Meteor - Fatal编程技术网

Meteor:在服务器端组织一个循环

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

如何在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().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,频率);
}
//您也可以直接编写,但我更喜欢使用函数