Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 流星:什么时候这个.ismulation比流星.isClient更有用?_Meteor - Fatal编程技术网

Meteor 流星:什么时候这个.ismulation比流星.isClient更有用?

Meteor 流星:什么时候这个.ismulation比流星.isClient更有用?,meteor,Meteor,此模拟的定义: Access inside a method invocation. Boolean value, true if this invocation is a stub. Meteor.isClient的定义: Boolean variable. True if running in client environment. 在什么情况下,这种模拟有用?为什么我不能一直使用Meteor.isClient 我正在使用Meteor.isClient检查客户端文档是否使用以下简单架构属

此模拟的定义:

Access inside a method invocation. Boolean value, true if this invocation is a stub.
Meteor.isClient的定义:

Boolean variable. True if running in client environment.
在什么情况下,这种模拟有用?为什么我不能一直使用Meteor.isClient

我正在使用Meteor.isClient检查客户端文档是否使用以下简单架构属性与服务器同步:

unsynced: {
  type: Boolean,
  autoValue: function () {
    return Meteor.isClient;
  }
}

它似乎起作用了,但其他人说使用这个。I模拟,除了在这里这样做对我不起作用之外。

我接受斯拉瓦的评论并将其转化为答案;) 其思想是,
isSimulation
可以在服务器或客户端的任何位置实现。它仅在
方法
上下文中有用。正如Slava所说,当一台服务器充当另一台服务器的客户端时,可以使用模拟

isClient
可用于所有类型的代码,而不仅仅是
方法内部的代码。它防止代码在可能引发错误的环境中执行(例如在服务器上使用
会话

对于延迟补偿,您通常在客户端和服务器上运行相同的方法,但是如果您将数据插入数据库,客户端显然只能模拟这种情况。因此,有时确定仿真是否正在运行或数据库是否已实际更改是有帮助的


在您的情况下,您可能需要调整方法,以检查服务器是否保存了更健壮的文档。为此,我将在方法中添加一个
isServer
块,以便在客户端更改数据时将标志
synced
设置为
true
,并将其设置为
false
。理想情况下,将其与成功的更新/升级相结合。

例如,当您有一个服务器到服务器的DDP时,您仍然可以在其中一个服务器上进行方法模拟。