我应该每次都使用Meteor.userId()还是应该将它存储在语言环境变量中?

时间:2015-08-13 14:11:59

标签: javascript meteor

在我多次使用用户ID的函数中,有什么好的做法:

  1. 在函数内声明一个locale变量来存储userId以满足即将到来的需求
  2. 每次相关功能(Meteor.userId()或出版物this.userId
  3. 时使用

    另一种提问方式是"我的语言环境变量是对Meteor.userId()的简单引用(每次调用它)还是副本?

    我同意它可能看起来像微优化,但我更多地要求学习和理解Javascript如何工作(在流星环境中)。

    附属问题:这是一个与关闭有关的问题吗?我仍然想弄明白。

2 个答案:

答案 0 :(得分:1)

Meteor.userId()只返回一个普通的旧Javascript字符串。您可以在第一次调用变量后将其保存在变量中,并使用它而不会产生任何后果。

这与封闭本身无关,但它与Meteor的反应性有关。只要您在被动上下文中调用函数中的Meteor.userId() 至少一次,Meteor就会在更改时重新运行该函数。

答案 1 :(得分:-1)

您可以使用

声明会话
var yoursession = Meteor.userId(); 

Session.set('yoursession')

然后您可以在每个客户端页面中调用会话。要调用会话,只需执行此操作Session.get('yoursession')

注意:您只能在客户端设置会话,而不能在服务器端设置。