2016-03-29 30 views
0

Bu meteor için başka bir zaman uyumsuz konu ve ben bunun için üzgünüm! Ben wrapasync, vaat, gelecek, lifler vs hakkında çok şey okudum ... biraz kayboldum!meteor çağrı meteor arama async

Benim sorun benim kodda sadece güncel hostname dönüyor sunucunun bir dönüş istiyoruz basittir:

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

Ben onCreated yardımcı benim programın uzaklaştırmak bu arıyorum :

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

Sorun şu ki: Session.get sayfamdan sonra çalıştırılan Session.set'im var. Bu Session.get bu yürütür:

benim şablonunda

: my yardımcı olarak

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

:

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

Yani, bu açıkça almak için wrapAsync nasıl kullanılacağını anlamak istiyorum ! Yardımlarınız için teşekkürler!

+0

İçinde Session.get kullanmayı deneyin. "wrapAsync", Eşzamansız kodun Fibers sayesinde senkronize olmasını ve yalnızca bir Düğüm ortamında (sunucu) çalışmasını sağlamaktır. İstemcide, klasik asenkronize sıkışmışsın. –

cevap

1

Session.getSession.set önce ortaya çıkabilir, ancak Session.set çağrıldığında, Session.get çok tekrar çağrılır çünkü, iyi olmalı (normal bir yardımcı olduğu en azından.)

ise Bu sizin için işe yaramıyor, Tracker.autorun()

+0

teşekkürler! İşe yarıyor ! ;) – Manov