2012-11-13 7 views
5

मुझे वर्तमान में निम्न कार्य के लिए कोई वापसी मूल्य नहीं मिल रहा है, सुझाव के बावजूद कि यह एक सिंक्रोनस कॉल है। अगर मैं इसे असंकालिक रूप से करता हूं, (यानी फ़ंक्शन (त्रुटि, ब्लाह) {console.log (blah);}), मुझे सही, इच्छित आउटपुट मिलता है।Meteor.call ("फ़ंक्शन", तर्क) सिंक्रनाइज़ नहीं हो रहा है

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" }, 
     ]; 
    } 

इसके अलावा, यहां एचटीएमएल बात यह है कि सही ढंग से कॉल हो रही है, के मामले में यह प्रासंगिक है:

<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> 
+0

क्या थोड़ा और समझाना संभव है? शायद एक छोटा सा उदाहरण। – user1821985

+0

मेरा मानना ​​है कि उल्का में एक तुल्यकालिक क्लाइंट-सर्वर-क्लाइंट राउंड-ट्रिप संभव नहीं है। 'Meteor.call' केवल सिंक्रोनस होता है जब यह node.js सर्वर पर चलाया जाता है। 'Meteor.call' के क्लाइंट-साइड इनवोकेशन को सर्वर से परिणाम प्राप्त करने के लिए' asyncCallback' तर्क का उपयोग करना चाहिए; 'कॉल' के क्लाइंट-साइड इनवोकेशन सिंक्रोनस नहीं हैं। (इसमें एक अपवाद है, लेकिन यह एक विशेष मामले में है जहां सर्वर से संपर्क करने से 'कॉल' अवरुद्ध है, और क्लाइंट-सिंक्रोनस' कॉल 'ऑपरेशन करता है।) – apsillers

उत्तर

2

यदि आप प्रासंगिक दस्तावेज़ों (http://docs.meteor.com/#meteor_call) के शरीर को पढ़ते हैं तो आप देखेंगे कि यह कहता है:

"ग्राहक, यदि आप एक कॉलबैक उत्तीर्ण नहीं होते हैं और आप एक ठूंठ के भीतर नहीं हैं, कॉल अपरिभाषित वापस आ जाएगी, और आप विधि की वापसी मूल्य प्राप्त करने के कोई रास्ता नहीं होगा"

तो व्यवहार आप देख रहे हैं कि आपको क्या उम्मीद करनी चाहिए। मुझे लगता है कि दस्तावेज़ यहां थोड़ा स्पष्ट हो सकते हैं।

+4

मुझे समझ में नहीं आया कि " ठूंठ " – StefanoCudini

संबंधित मुद्दे