使用setTimeout查询Meteor中的Collection

L.T*_*L.T 1 settimeout meteor

我在model.js中定义了一个像这样的集合:

People = new Meteor.Collection("people");
Run Code Online (Sandbox Code Playgroud)

这是main.js中的代码:

function test2(){
  console.log(JSON.stringify(People.find().fetch()));
  setTimeout(test2,5000)
}
if (Meteor.isServer) {
  if(People.find().fetch().length === 0){
    var tom = {name:"Tom",age:18};
    People.insert(tom);
  }

  Meteor.startup(function () {
    test2();
  });
}
Run Code Online (Sandbox Code Playgroud)

以下是我得到的错误:

在此输入图像描述

我希望Meteor以设定的间隔自动在Collection上执行一些CRUD.所以我正在使用setTimeOut,但似乎很难.

关于我做错了什么的任何想法?

Aks*_*hat 5

改为使用Meteor.setTimeout:

Meteor.setTimeout(test2,5000)
Run Code Online (Sandbox Code Playgroud)

在服务器上,使用光纤运行meteor代码来让你的同步代码编写,javascript的超时也必须让它的回调在光纤中激活,特别是如果它包含流星代码.