Redux सिंक्रोनस या एसिंक्रोनस में store.dispatch है


104

मुझे लगता है कि यह एक बुनियादी सवाल है लेकिन मुझे कहीं और जवाब खोजने का कोई सौभाग्य नहीं था।

में store.dispatchसिंक्रोनस या एसिंक्रोनस है Redux?

मामले में यह अतुल्यकालिक है कि क्या कार्रवाई के प्रचार के बाद कॉलबैक जोड़ने की संभावना है क्योंकि यह संभव है React?


ध्यान दें कि राज्य को सिंक्रोनस ( getState()) अपडेट किया गया है, लेकिन mapStateToPropsऐसा नहीं है। तो this.props.valueपुराना मूल्य है जबकि getState().valueनया है - कोडैंडबॉक्स.io
Mosh Feu

जवाबों:


89

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


69

कोड से बेहतर कोई नहीं जानता । =) जैसा कि आप देख सकते हैं dispatchबिल्कुल तुल्यकालिक है। यहां केवल चेतावनी यह है कि enhancersविकल्प dispatchविधि को स्टोर (और कर) कर सकते हैं । उदाहरण के लिए, एन्हांसर परapplyMiddleware एक नज़र डालें , यह आपको dispatchस्वयं के कार्यान्वयन के साथ डिफ़ॉल्ट विधि को बदलकर जैक मिडवार को देता है। हालाँकि मैंने कभी भी कोई Redux नहीं देखा enhancerजो वास्तव में तुल्यकालिक प्रकृति को हटा देगा dispatch


1
आपको लागू मिडिलवेयर लिंक को https://github.com/reduxjs/redux/blob/master/src/applyMiddleware.ts#L19 पर अपडेट करना चाहिए (js से redux माइग्रेशन के कारण -> ts, मैं संपादन नहीं कर सकता चूंकि यह <6 अक्षर है)। या, शायद आपको एक कमिट का संदर्भ देना चाहिए जब वे अभी भी आपके code itselfलिंक की तरह जेएस का उपयोग करते थे , जो कमिट के 'पर्मलिंक' पहलू के कारण डेडलिंक हो जाएगा।
user7413060
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.