मुझे वर्तमान में निम्न कार्य के लिए कोई वापसी मूल्य नहीं मिल रहा है, सुझाव के बावजूद कि यह एक सिंक्रोनस कॉल है। अगर मैं इसे असंकालिक रूप से करता हूं, (यानी फ़ंक्शन (त्रुटि, ब्लाह) {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>
क्या थोड़ा और समझाना संभव है? शायद एक छोटा सा उदाहरण। – user1821985
मेरा मानना है कि उल्का में एक तुल्यकालिक क्लाइंट-सर्वर-क्लाइंट राउंड-ट्रिप संभव नहीं है। 'Meteor.call' केवल सिंक्रोनस होता है जब यह node.js सर्वर पर चलाया जाता है। 'Meteor.call' के क्लाइंट-साइड इनवोकेशन को सर्वर से परिणाम प्राप्त करने के लिए' asyncCallback' तर्क का उपयोग करना चाहिए; 'कॉल' के क्लाइंट-साइड इनवोकेशन सिंक्रोनस नहीं हैं। (इसमें एक अपवाद है, लेकिन यह एक विशेष मामले में है जहां सर्वर से संपर्क करने से 'कॉल' अवरुद्ध है, और क्लाइंट-सिंक्रोनस' कॉल 'ऑपरेशन करता है।) – apsillers