- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
从this comment来看作者:David Glasser 在 GitHub 问题中:
this.userId
is the primary API andMeteor.userId()
is syntactic sugar for users new to JavaScript who might not understand the details of successfully using this yet
似乎我们应该尽可能使用this.userId
(比如在方法函数中,你可以同时使用两者),并且只使用Meteor.userId()
内部发布功能。如果这个假设是正确的,为什么?
(引用代码的相关部分也有帮助,我似乎找不到)
最佳答案
您的问题似乎混淆了 Meteor.userId()
和 Meteor.user()
。问题的主体似乎是在问前者,而主题行是在问后者。我会尝试解决这两个问题。
Meteor.userId()
或 Meteor.user()
将 cause an error .相反,请分别使用 this.userId
或 Meteor.users.findOne(this.userId)
。但是,请注意发布函数仅在客户端订阅时调用。如果您希望发布在用户记录更改时更改,则需要 observe()
Meteor.users.find(this.userId)
返回的游标和当记录发生变化时采取适当的行动。在服务器上,当一个方法调用被处理时,Meteor.userId()
和Meteor.user()
将对应于调用用户和他们的记录,分别。但是,请注意调用 Meteor.user()
将导致数据库查询,因为它们是 essentially equivalent to Meteor.users.findOne(Meteor.userId())
。 .
直接在方法调用中,您也可以使用 this.userId
代替 Meteor.userId()
,但您不太可能看到显着的性能差异。当服务器接收到方法调用时,它 runs your method implementation with the user's ID (and some other info)存储在特定的 slot在纤维上。 Meteor.userId()
只是从当前光纤的插槽中检索 ID。那应该很快。
重构使用 Meteor.userId()
的代码通常比使用 this.userId
更容易,因为您不能使用 this.userId
在方法体之外(例如 this
在您从方法体调用的函数中不会有 'userId' 属性)并且您不能使用 this.userId
在客户端上。
Meteor.userId()
和 Meteor.user()
不会抛出错误,this.userId
将不起作用.对 Meteor.user()
的调用是 essentially equivalent to Meteor.users.findOne(Meteor.userId())
,但由于这对应于一个迷你 mongo DB 查询,性能可能不会成为问题。但是,出于安全原因,Meteor.user()
返回的对象可能不完整(特别是如果未安装 autopublish
包)。关于javascript - Meteor - 为什么我应该尽可能使用 this.userId 而不是 Meteor.userId() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32800211/
我知道在 KDB 中,如果您有一个列表,例如... l:`apples`oranges`pears` 您可以像下面这样进行 N 次随机选择: 9?l 但是如何尽可能均匀地选择列表中的每个项目? 最佳答
我真的厌倦了它。我有一个高级 Web 应用程序依赖于大量 Javascript 库(jQuery、jQueryUI、OpenLayers、highcharts、EJSChart 等等)。不用说,Int
我是一名优秀的程序员,十分优秀!