流星中的流星呼叫异步

时间:2016-03-29 15:05:24

标签: asynchronous meteor

这是流星的另一个异步主题,我很抱歉!我读了很多关于wrapasync,promise,future,fiber等的东西......我有点迷失了!

我的问题很简单,在我的代码中,我只想返回从以下位置返回当前主机名的服务器:

"getHost" : function(){
      return this.connection.httpHeaders.host;
 }

我在onCreated帮助程序的程序开始时调用它:

Template.printjoblistList.onCreated(function () {
    Meteor.call("getHost", function(err, data){
        if(err){
            console.log("error " + err + " : " + data);
        }else {
            Session.set("printJobList_Host", data)
        }
    });
});

问题是:我的Session.set是在Session.get之后执行的。此Session.get由以下内容执行:

在我的模板中:

<a href="{{getPdf}}">{{getPdf}}</a>

在我的帮手中:

Template.registerHelper("getPdf", function() {
    var myReturn = Session.get('printJobList_Host'); + "/pdf/" + pdfFileName;
    return myReturn;
});

所以,我想了解如何使用wrapAsync来清楚地说明这一点! 谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

Session.get可能会在Session.set之前发生,但这应该没问题,因为调用Session.set时,Session.get也会再次被调用(至少这是常规助手的情况。)

如果这对您不起作用,请尝试使用Session.get

中的Tracker.autorun()