【发布时间】:2015-01-09 16:05:50
【问题描述】:
在 Meteor 中,为什么要使用 Meteor.setTimeout() 而不是普通的 setTimeout()?
使用 Meteor.setTimeout() 而不仅仅是普通的 setTimeout 或 setInterval 有什么价值?
【问题讨论】:
标签: meteor
在 Meteor 中,为什么要使用 Meteor.setTimeout() 而不是普通的 setTimeout()?
使用 Meteor.setTimeout() 而不仅仅是普通的 setTimeout 或 setInterval 有什么价值?
【问题讨论】:
标签: meteor
在客户端,它们之间没有区别。
在服务器上,当代码为特定用户运行时(例如在方法调用中),您需要使用Meteor.setTimeout 而不是window.setTimeout 来让 Meteor 记住应该为哪个用户调用函数。在传递给Meteor.setTimeout 的函数被调用和被调用之间的时间里,其他用户可能已经调用了服务器上的方法,而Meteor.userId 可能会返回他们的用户ID。 Meteor.setTimeout 会变回来,所以 Meteor.userId 返回用户的用户 ID,在调用传递给它的函数之前调用了 Meteor.setTimeout。
这是一个设计决定。
【讨论】:
使用Meteor.setTimeout() 可确保此代码可识别光纤。阅读有关纤维的更多信息:https://github.com/laverdet/node-fibers
【讨论】: