从另一个方法存根(客户端代码)

时间:2016-10-05 12:43:59

标签: javascript performance meteor

出于性能原因,我想从另一个方法存根(仅客户端代码)调用Meteor方法,但我希望被调用的方法也在服务器端运行

下面的methodBar似乎只在客户端运行。这是设计的吗?有办法吗?

const methodFoo = new ValidatedMethod({
  // name, validate not important
  run() { 
    // ...some common code here server&client...
    if (Meteor.isClient) {
      // ...several rather expensive mongo queries, must be client-only...
      if (miniMongoResultsSaySo) Meteor.call('methodBar'); 
    }
  }
});

1 个答案:

答案 0 :(得分:0)

流星在方法中分离客户端和服务器时似乎非常顽固!

我可以通过跟踪器依赖关系使methodBarmethodFoo调用。与流星一起用火和流星灭火:)

const barNeedsToRun = new Tracker.Dependency;
if (Meteor.isClient) {
  Tracker.autorun((computation) => {
    barNeedsToRun.depend();
    if (!computation.firstRun) methodBar.call();
  }
}

然后在methodFoo中,我使用Meteor.call

更改了barNeedsToRun.changed()