मैं कुछ जटिल जटिल तर्क बनाने के लिए नोड.जेएस और ब्लूबर्ड का उपयोग कर रहा हूं जिसमें एक संरचित फ़ाइल को असम्पीड्रेस करना, जेएसओएन को पार्स करना, कई मोंगोडीबी दस्तावेज़ों में परिवर्तन करना और बनाना और कई स्थानों में संबंधित फाइलें लिखना शामिल है। त्रुटि होने पर सिस्टम की स्थिति के आधार पर मेरे पास यह सब कुछ जटिल त्रुटि हैडलिंग भी है।वादा निर्भरता प्रबंधित करना
मुझे वादों के प्रवाह के माध्यम से निर्भरताओं का प्रबंधन करने के लिए एक अच्छा तरीका सोचने में कठिनाई हो रही है।
मेरे मौजूदा कोड मूल रूप से इस तरह दिखता है:
var doStuff = function() {
var dependency1 = null;
var dependency2 = null;
promise1()
.then(function (value) {
dependency1 = value;
return promise2()
.then(function (value) {
dependency2 = value;
return promise3(dependency1)
.then(successFunction);
});
})
.catch(function (err) {
cleanupDependingOnSystemState(err, dependency1, dependency2);
});
};
ध्यान दें कि dependency1 promise3 जब तक की जरूरत नहीं है, और त्रुटि हैंडलर निर्भरता के बारे में पता करने की जरूरत है कि।
मेरे लिए यह स्पेगेटी कोड की तरह लगता है (और मेरा वास्तविक कोड बहुत समानांतर प्रवाह प्रवाह से बहुत खराब है)। मैंने यह भी पढ़ा है कि एक के अंदर एक और वादा वापस कर रहा है। तो कॉलबैक एक एंटीपाटर है। क्या मैं जो करने की कोशिश कर रहा हूं उसे पूरा करने का एक बेहतर/साफ तरीका है?
यह प्रोग्रामर.स्टैकएक्सchange.com के लिए शायद ईमानदार व्यक्ति होने के लिए बेहतर है। – 1252748
क्या 'वादा 2' 'वादा 1' पर निर्भर करता है? कोड का तात्पर्य है, लेकिन यह थोड़ा अस्पष्ट है। – loganfsmyth
हां, बाद में आने वाला कोई वादा कुछ पूर्व वादे/डेटा को पुनर्प्राप्त करने पर निर्भर करता है। –