【问题标题】:When do Meteor method callbacks fire? [duplicate]Meteor 方法回调何时触发? [复制]
【发布时间】:2015-12-10 23:16:54
【问题描述】:

我的问题很简单:给定一个同时加载在服务器和客户端上的 Meteor 方法,如果您在客户端/从客户端调用此方法并提供回调,该回调何时触发?

  1. 前端模拟什么时候完成?
  2. 后端前端调用何时完成?

Meteor docs 只是说:

Meteor 跟踪作为方法调用的一部分执行的数据库更新,并等待调用客户端回调,直到所有这些更新都发送到客户端。

这个恕我直言并不清楚它是在等待服务器端更新还是客户端模拟更新。如果它总是在等待服务器端,这基本上打破了“延迟补偿”,因为你不能在客户端上/从客户端调用方法而不是异步样式,因为你没有纤程。

【问题讨论】:

  • 如果你提供了一个回调,它将在服务器完成该方法的执行后被调用。我同意文档可以让我更清楚。
  • 不仅如此。根据文档,有存根运行和服务器调用,服务器运行和响应,然后缓存比较和覆盖,最后是回调。
  • @MasterAM :你能解释一下你提到的事情如何与当且仅当服务器端完成并且所有更改都已转移到客户端时回调触发的答案相矛盾?
  • 我指的是这个问题的答案,这个问题被标记为与大卫的评论的重复。

标签: javascript meteor callback


【解决方案1】:

围绕这一点的语言不能再令人困惑了。我相信它只会在服务器完成后被调用一次。

来自 Meteor 文档。

Meteor 跟踪由客户端和服务器上的方法执行的数据库写入,并且在服务器的所有写入替换本地缓存中存根的写入之前不会调用 asyncCallback。在某些情况下,方法的返回值可用和写入可见之间可能存在延迟

希望这会有所帮助!

【讨论】:

  • 能否提供源链接?
  • @BM 这是this section 的最后一段,就在apply 部分之前。
猜你喜欢
  • 2017-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 2021-08-14
  • 2023-03-29
相关资源
最近更新 更多