1

我在 model.js 中定义了一个 Collection,如下所示:

People = new Meteor.Collection("people");

这是 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();
  });
}

这是我得到的错误:

在此处输入图像描述

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

知道我做错了什么吗?

4

1 回答 1

5

使用Meteor.setTimeout代替:

Meteor.setTimeout(test2,5000)

在服务器上,流星代码使用光纤运行以让您编写同步代码,javascript 的超时必须让它的回调也可以在光纤中触发,特别是如果它包含流星代码。

于 2013-05-15T07:17:27.567 回答