这是流星的另一个异步主题,我很抱歉!我读了很多关于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来清楚地说明这一点! 谢谢你的帮助!
答案 0 :(得分:1)
Session.get
可能会在Session.set
之前发生,但这应该没问题,因为调用Session.set
时,Session.get
也会再次被调用(至少这是常规助手的情况。)
如果这对您不起作用,请尝试使用Session.get
Tracker.autorun()