मुझे यह समझाया गया core.async/पाइप लाइन का उपयोग कर त्रुटियों को संभालने के लिए सही तरीका क्या कोशिश कर रहा हूँ, मेरे पाइपलाइन निम्नलिखित है:हैंडलिंग त्रुटियों
input --> xf-run-computation --> first-out
first-out --> xf-run-computation --> last-out
कहाँ xf-run-computation
एक http कॉल करना होगा और प्रतिक्रिया प्रतिक्रिया। हालांकि इनमें से कुछ प्रतिक्रियाएं एक त्रुटि लौटाएंगी। इन त्रुटियों को संभालने का सबसे अच्छा तरीका क्या है?
(let [[success-values1 error-values1] (split fn-to-split first-out)
[success-values2 error-values2] (split fn-to-split last-out)
errors (merge [error-values1 error-values2])]
(pipeline 4 first-out xf-run-computation input)
(pipeline 4 last-out xf-run-computation success-values1)
[last-out errors])
तो मेरी समारोह पिछले परिणाम और त्रुटियों वापस आ जाएगी: मेरे समाधान success-values
और error-values
में आउटपुट चैनलों विभाजित और फिर उन्हें वापस विलय एक चैनल को करना है।
धन्यवाद कि यह एक गलती है: 'त्रुटियां (विलय [त्रुटि-मूल्य त्रुटि-मान 2] ' –
आपका प्रश्न अभी भी थोड़ा उलझन में है। आपने सभी' फर्स्ट-आउट 'को प्रसंस्करण के दूसरे चरण में रखा है, जिसमें सफल और असफल दोनों परिणाम शामिल हैं। क्या दूसरा चरण इनपुट केवल 'सफलता-मूल्य 1' नहीं होना चाहिए? –
मैंने आउटपुट चैनल के रूप में' फर्स्ट-आउट 'रखा है, इसलिए जब भी' xf-run-computation' कुछ परिणाम प्रकाशित करता है तो ' fn-to-split' का मूल्यांकन किया जाएगा और परिणाम को 'सफलता-मूल्य 1' या' त्रुटि-मान 1' –