2015-09-29 18 views
9

अब ईएस 6 आधिकारिक तौर पर नोड 4.x में मानक है, आप वादा का उपयोग कैसे करते हैं? मॉड्यूल करें (उदाहरण के लिए मूल fs मॉड्यूल) स्वचालित रूप से वादे के साथ काम करते हैं? या मॉड्यूल को विशेष रूप से वादे के साथ काम करने के लिए लिखा जाना चाहिए? आप कैसे जानते हैं कि आप किस वचन का उपयोग कर सकते हैं और आप क्या नहीं कर सकते?नोड 4.x में वादा का उपयोग कैसे करें?

कई अलग-अलग वादा कार्यान्वयन (क्यू, ब्लूबर्ड, आदि) हैं कि मैं नोड 4.x में देशी वादे के साथ कहां से शुरू करना है, इस पर उलझन में हूं।

+4

मैं _promise_, आपको निश्चित रूप से जल्द ही जवाब मिल जाएगा :) – Tushar

+0

मुझे कोई अंतर्निहित नोड.जेएस मॉड्यूल नहीं पता है जो उनके एसिंक ऑपरेशंस के लिए वादे वापस कर देता है। वे अभी भी उसी कॉलबैक का उपयोग करते हैं जो उन्होंने हमेशा उपयोग किया है। आप क्या कर सकते हैं इन इंटरफेस में से किसी को भी ऐसे कार्यों को बनाने के लिए "promisify" है जो मानक node.js async कॉलिंग सम्मेलन से वादे वापस लौटते हैं। वास्तव में, ब्लूबर्ड के 'Promisify.promisifyAll()' जैसी चीजों का उपयोग करके, आप 'var (s'' जैसे 'var fs = Promise.promisifyAll (आवश्यकता ("fs")) पर एक संपूर्ण मॉड्यूल को प्रमाणित कर सकते हैं;' और फिर प्रत्येक उस मॉड्यूल में फ़ंक्शन का एक नया वादा संस्करण है। बहुत उपयोगी। – jfriend00

उत्तर

16

आप वादा का उपयोग कैसे करते हैं?

आप नए कन्स्ट्रक्टर, वादा का उपयोग करके "मूल" वादे का उपयोग कर सकते हैं। एपीआई की मूल बातें over on MDN, और वादा can be found on HTML5Rocks के गहन अध्ययन में मिल सकती हैं।

मॉड्यूल (उदाहरण के लिए देशी एफएस मॉड्यूल) स्वचालित रूप से वादे के साथ काम करते हैं?

वे नहीं करते हैं, लेकिन it's not so difficult to make a wrapper। बेशक, पूरे नोड एपीआई के लिए ऐसा करना थोड़ा कठिन हो सकता है।

ओपी में टिप्पणियों में से एक ने ब्लूबर्ड के PromisifyAll का उल्लेख किया, जो वादा का उपयोग करने के लिए एक संपूर्ण मॉड्यूल को बदलने के लिए एक जादूगर तरीका की तरह लगता है। निफ्टी!

मैं नोड के आने वाले संस्करणों में कुछ वादा-ified एपीआई की अपेक्षा करता हूं, लेकिन मुझे इसके बारे में निश्चित नहीं है। इसके आसपास कहीं भी कोई समस्या या चर्चा हो सकती है ... शायद io.js प्रोजेक्ट पर। अगर मुझे कुछ मिल जाए तो मैं इसकी जांच और अपडेट करूंगा।

क्यों हमारे पास वचन और कॉलबैक-शैली API है? यह संभावना है कि कॉलबैक को हटाने जैसे संभावित रूप से एपीआई परिवर्तनों को तोड़ने के लिए, वादा जोड़ने के साथ, जोड़ों को जोड़ना आसान है।

या मॉड्यूल को विशेष रूप से वादे के साथ काम करने के लिए लिखा जाना चाहिए?

वे करते हैं।

आप कैसे जानते हैं कि आप किस वचन का उपयोग कर सकते हैं और आप क्या नहीं कर सकते हैं?

documentation हमेशा API प्रश्नों के लिए जाने का सबसे अच्छा स्थान है। मुझे वादा करने वाले किसी भी चीज़ के बारे में पता नहीं है, लेकिन मैंने स्वीकार किया है कि मेरे दिन-प्रतिदिन नोड एपीआई का एक छोटा सबसेट इस्तेमाल किया जाता है।

कई अलग-अलग वादा कार्यान्वयन (क्यू, ब्लूबर्ड, आदि) हैं जो कि मैं नोड 4.x में देशी वादे के साथ कहां से शुरू करना है, इस पर उलझन में हूं।

क्या आपके पास इन विभिन्न कार्यान्वयनों के बारे में कोई विशिष्ट प्रश्न हैं? जिस तरह से मैं इसके बारे में सोचता हूं वह यह है कि देशी वादे बहुत कम हैं। वे एसिंक्रोनस कोड को थोड़ा क्लीनर बनाने के लिए काफी अच्छे हैं, लेकिन उनके पास कोई फ्रिल्स नहीं है।वातावरण है कि देशी वादे फैंसी सुविधाओं के

  • ऐड डिग्री बदलती का समर्थन नहीं करते के लिए

    1. एक polyfill प्रदान करें

    पहले उपयोग के मामले अब आवश्यक है: उन अन्य पुस्तकालयों आप का उल्लेख दो बातें नोड में तो यह निर्धारित करने का मामला है कि क्या आप उन फैंसी सुविधाओं में से किसी एक की आवश्यकता/आवश्यकता है।

    मुझे यह बताएं कि यह उत्तर संतोषजनक नहीं है, और मैं इसे अधिक जानकारी के साथ अपडेट करने का प्रयास करूंगा!

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