मैंने अभी नोड का उपयोग करना शुरू किया है, और एक चीज जो मैंने जल्दी से देखी है कि कॉलबैक कितनी जल्दी इंडेंटेशन का मूर्खतापूर्ण स्तर तक निर्माण कर सकता है:
doStuff(arg1, arg2, function(err, result) {
doMoreStuff(arg3, arg4, function(err, result) {
doEvenMoreStuff(arg5, arg6, function(err, result) {
omgHowDidIGetHere();
});
});
});
आधिकारिक गाइड शैली एक अलग समारोह में प्रत्येक कॉलबैक डाल करने के लिए कहते हैं, लेकिन जो ज़रूरत से ज़्यादा बंदी के उपयोग पर प्रतिबंधात्मक लगता है, और बनाने एक वस्तु शीर्ष स्तर में घोषित उपलब्ध कई परतों के नीचे, के रूप में वस्तु सब के माध्यम से पारित किया जाना है मध्यवर्ती कॉलबैक।
क्या यहाँ मदद करने के लिए फंक्शन स्कोप का उपयोग करना ठीक है? उन सभी कॉलबैक फ़ंक्शंस को रखें, जो किसी फ़ंक्शन के अंदर एक वैश्विक-ईश ऑब्जेक्ट तक पहुंच की आवश्यकता होती है, जो उस ऑब्जेक्ट को घोषित करता है, इसलिए यह एक क्लोजर में जाता है?
function topLevelFunction(globalishObject, callback) {
function doMoreStuffImpl(err, result) {
doMoreStuff(arg5, arg6, function(err, result) {
callback(null, globalishObject);
});
}
doStuff(arg1, arg2, doMoreStuffImpl);
}
और इतने पर कई और परतों के लिए ...
या हर एक कॉलबैक के लिए एक नामित फ़ंक्शन घोषित किए बिना इंडेंटेशन के स्तर को कम करने में मदद करने के लिए फ्रेमवर्क आदि हैं? आप कॉलबैक पिरामिड से कैसे निपटेंगे?