Meteor.logout()正在等待服务器响应

Meteor.logout()正在等待服务器响应,meteor,Meteor,查看Meteor.logout()的源代码,调用将等待服务器响应,然后将用户标记为已在客户端注销。等待的理由是什么?如果立即调用makeClientLoggedOut(),是否会出现故障 Meteor.logout = function (callback) { Meteor.apply('logout', [], {wait: true}, function(error, result) { if (error) { callback && callba

查看Meteor.logout()的源代码,调用将等待服务器响应,然后将用户标记为已在客户端注销。等待的理由是什么?如果立即调用makeClientLoggedOut(),是否会出现故障

Meteor.logout = function (callback) {
  Meteor.apply('logout', [], {wait: true}, function(error, result) {
    if (error) {
      callback && callback(error);
    } else {
      makeClientLoggedOut();
      callback && callback();
    }
  });
};

这是异步方法调用的典型模式。由于
注销是一个远程方法,您需要等待以确保此方法在服务器上成功执行。@apendua(Meteor除外)通常都是关于延迟补偿的,这意味着事情首先发生在客户端上,然后在服务器拒绝时再恢复。@BenjaminRH fine,但是当你尝试注销时,遗留补偿有意义吗?是的,我想你可以说,当你尝试注销时,延迟补偿有意义。这一切都是为了让它看起来很快,为什么会有什么不同呢?因为这样用户可能会认为他实际上已经注销了,他的数据被清除了,因此他会关闭标签,而Meteor仍然需要做一些清理。