2015-07-30 9 views
7

ए वादा एक ऑब्जेक्ट प्रकार है जो भविष्य के परिणाम के लिए प्लेसहोल्डर के रूप में कार्य करता है, जैसे कि HTTP अनुरोध का निकाय, या उल्का विधि कॉल का वापसी मूल्य। असल में कोई भी फ़ंक्शन जो आपको रिटर्न वैल्यू प्राप्त करने के लिए कॉलबैक पास करने के लिए मजबूर करता है (इसे वापस करने की बजाय) को एसिंक फ़ंक्शन, कहा जाता है और वह मान जो वापस देता है उसे वादा द्वारा दर्शाया जा सकता है। इस तरह के एक वेब पेज में पाठ, या एक Minimongo संग्रह की सामग्री के रूप में -क्या मैं एक उल्का सहायक से एक एसिंक मूल्य (एक वादा) वापस कर सकता हूं?

उल्का में मुद्दा यह है कि helper तरीकों केवल तुल्यकालिक मानों के साथ काम करने का इरादा कर रहे हैं। जब आप एक से एक वादा, सहायक

  • से पता चलता संकल्प लिया मान के बजाय [object Promise] लौट
  • अपडेट नहीं होता वादा

इस अस्तित्व को सुलझाने में कुछ प्रयास का समाधान करता है: simple:reactive-method और arsnebula:reactive-promise , लेकिन उन्हें आपको अपने सहायकों को एक निश्चित शैली में बदलने की आवश्यकता है, या बस केवल सामान्य वचन देने की अनुमति देने के बजाय Meteor.call के साथ काम करें।

क्या कुछ मौजूदा है जिसे मैंने अनदेखा किया है, या क्या कार्यों में कोई समाधान है? मैं कुछ समय से इसका प्रयोग कर रहा हूं, और यदि कोई आधिकारिक उत्तर नहीं है तो मैं कुछ खुद पर काम कर सकता हूं।

+0

कृपया जो भी आपने अभी तक प्रयास किया है उसका उदाहरण कोड दें। –

+0

अच्छा सवाल। आप मूल रूप से 'सरल: प्रतिक्रियाशील-विधि' का उपयोग किसी विधि के बजाय वादे के साथ करना चाहते हैं, लेकिन अन्यथा यह वही विचार है। –

+0

हां, @AndrewMao, लेकिन ReactiveMethod श्रृंखला योग्य नहीं है, पूर्ण वादा नहीं .. –

उत्तर

0

यहां तक ​​कि अन्य पुस्तकालयों के संबंध में भी, मुझे लगता है कि अब जवाब का जवाब पैकेज deanius:promise (अस्वीकरण: मैंने कुछ अन्य पैकेजों के लेखकों से इनपुट के साथ लिखा है) के साथ जाना है।

यह सवाल पूछता है, और नियंत्रण योग्य त्रुटि और संदेशों को लोड करने जैसे कुछ अच्छे स्पर्श जोड़ता है।

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