出于性能原因,我想从另一个方法存根(仅客户端代码)调用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');
}
}
});
答案 0 :(得分:0)
流星在方法中分离客户端和服务器时似乎非常顽固!
我可以通过跟踪器依赖关系使methodBar
被methodFoo
调用。与流星一起用火和流星灭火:)
const barNeedsToRun = new Tracker.Dependency;
if (Meteor.isClient) {
Tracker.autorun((computation) => {
barNeedsToRun.depend();
if (!computation.firstRun) methodBar.call();
}
}
然后在methodFoo
中,我使用Meteor.call
barNeedsToRun.changed()