Meteor.setTimeout()与setTimeout()的重点是什么?

时间:2015-01-09 00:35:52

标签: meteor

在Meteor中,为什么会使用Meteor.setTimeout()而不是普通的setTimeout()?

使用Meteor.setTimeout()而不仅仅是vanilla setTimeout或setInterval有什么价值?

2 个答案:

答案 0 :(得分:19)

在客户端,它们之间没有区别。

在服务器上,当代码针对特定用户运行时(例如在方法调用中),您需要使用Meteor.setTimeout而不是window.setTimeout来使Meteor记住该函数应该是哪个用户调用。在调用传递给Meteor.setTimeout的函数和调用函数之间的时间内,其他用户可能已经调用了服务器上的方法,而不是Meteor.userId来返回其用户ID。 Meteor.setTimeout将更改回来,以便在调用传递给它的函数之前,Meteor.userId返回用户对Meteor.setTimeout的调用的用户ID。

这是一个设计决定。

答案 1 :(得分:8)

使用Meteor.setTimeout()可确保此代码可识别Fibers。阅读有关Fibers的更多信息:https://github.com/laverdet/node-fibers