Meteor.call(“函数”,arg)不同步发生

尽pipebuild议这是一个同步调用,但是我目前没有得到任何以下函数的返回值。 如果我asynchronous做(即function(错误,等等){console.log(等等);}),我得到正确的,预期的输出。

Template.file_nav.files = function(path) { path = path || "/"; var x = Meteor.call('get_files', path); return x; } 

以下是“get_files”方法的服务器端代码:

  Meteor.methods( { get_files : function get_files(path) { return [ { "name" : " bob" }, { "name" : "alice" }, ]; } 

另外,这里的HTML部分正确调用,以防万一它是相关的:

 <template name="file_nav"> <div> <ul style="dirnav"> {{#each files}} {{#if isDirectory this}} <li><a href="javascript:void(0)" onclick="get_directory('{{name}}')">{{ {{else}} <li><a href="javascript:void(0)" onclick="get_file('{{name}}')">{{name} {{/if}} {{/each}} </ul> </div> </template> 

如果你阅读了相关文档的主体(http://docs.meteor.com/#meteor_call),你会看到它说&#xFF1A;

“在客户端上,如果你不传递callback,而你又不在存根中,那么调用将返回undefined,你将无法获得方法的返回值”

所以你看到的行为是你应该期望的。 我认为这里的文档可能会更清楚些。