【问题标题】:What's the point of Meteor.setTimeout() vs just setTimeout()?Meteor.setTimeout() 与 setTimeout() 相比有什么意义?
【发布时间】:2015-01-09 16:05:50
【问题描述】:

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

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

【问题讨论】:

    标签: meteor


    【解决方案1】:

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

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

    这是一个设计决定。

    【讨论】:

    • 非常感谢您的解释。
    【解决方案2】:

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

    【讨论】:

    • 谢谢,您能否提供一个示例,说明 Meteor.setTimeout() 可以使用光纤而不是不使用光纤来做哪些新事情?
    • 您必须了解节点的工作原理以及光纤允许的情况。检查 Slava(A Meteor 核心开发人员)的答案:groups.google.com/d/msg/meteor-talk/uipZ9I_37AU/SimAAlYnY6sJ
    猜你喜欢
    • 2016-03-29
    • 2011-01-09
    • 1970-01-01
    • 2010-12-08
    • 2015-11-04
    • 2012-02-10
    • 2016-07-04
    • 2011-03-13
    相关资源
    最近更新 更多