2014-09-26 8 views
5

मैं Meteor wrapAsync का उपयोग कैसे करूं?उल्का wrapAsync वाक्यविन्यास

नीचे क्या मैं

if (tempTreatment.groupId === undefined) { 
     // create new group 
     Meteor.wrapAsync(Meteor.call('createTreatmentGroup', salon, tempTreatment.groupName, tempTreatment.groupName)); 

     // get group id 
     var getGroup = Meteor.wrapAsync(Meteor.call('getTreatmentGroup', salon, tempTreatment.groupName)); 

     console.log(getGroup); 
     tempTreatment.groupId = getGroup._id; 
} 

मैं इन दो Meteor.call कार्यों synchronosly चलाना चाहते हैं, लेकिन मैं console.log(getGroup); पर undefined जो सिर्फ एक ऑब्जेक्ट shuold मिलता है की कोशिश कर रहा हूँ।

उत्तर

7

Meteor.wrapAsync सर्वर की ओर से Node.js अतुल्यकालिक पिछले तर्क के रूप में एक कॉलबैक की आवश्यकता होती है कार्यों रैप करने के लिए, उन्हें Future रों, एक फाइबर उप पुस्तकालय के उपयोग के माध्यम तुल्यकालिक प्रदर्शित करने के लिए डिज़ाइन किया गया एपीआई है। (यह यहाँ के बारे में अधिक: https://www.discovermeteor.com/blog/wrapping-npm-packages/)

यह इरादा नहीं है क्योंकि ब्राउज़र पर एक तुल्यकालिक कॉल में अतुल्यकालिक Meteor.call चालू करने के लिए प्रयोग की जाने वाली क्लाइंट साइड, दूरस्थ विधि Invokation कॉल हमेशा अतुल्यकालिक कर रहे हैं।

लंबी कहानी छोटी, आप बस जो भी करने की कोशिश कर रहे हैं उसे प्राप्त नहीं कर सकते हैं, आपको कॉलबैक का उपयोग करना होगा और अपनी पहली विधि कॉल की सफलता कॉलबैक के अंदर अपनी दूसरी विधि कॉल का घोंसला करना होगा।

+1

0.9.3 में [Meteor.wrapAsync] (http://docs.meteor.com/#meteor_wrapasync) है जिसका उपयोग 'कहीं भी' किया जा सकता है। क्या यह गलती है? –

+3

मैंने यह नहीं देखा था। मुझे लगता है कि उन्होंने 'Meteor.wrapAsync' का क्लाइंट संस्करण बनाया है ताकि इसका उपयोग करने वाले कोड को साझा फ़ोल्डर में त्रुटियों को ट्रिगर किए बिना रखा जा सके, लेकिन वास्तव में यह सर्वर के उपयोग के लिए है। यदि कोई कॉलबैक प्रदान नहीं किया जाता है, तो 'wrapAsync' का क्लाइंट साइड संस्करण बस इसके बजाय उपयोग किए जाने वाले मानक' logErr 'कॉलबैक को परिभाषित करता है, जो मौजूद होने पर त्रुटि को लॉग करता है: https://github.com/meteor/meteor/blob/ 9608e6205019b69a302cde62e21fcae1c7d22e3d/संकुल/उल्का/helpers.js # L108 – saimeunt