मूल रूप से करने के लिए एक के अंदर कॉलबैक फ़ंक्शन लागू, मैं एक समारोह है, जहां एक पाश जो के अंदर चल रहा है कई कॉलबैक फ़ंक्शन वर्तमान (कॉलबैक नरक) कर रहे हैं कॉल करने के लिए कोशिश कर रहा हूँ .. के रूप में नीचे:NodeJS: पाश
for(var i=0;i<data.id.length;i++)
{
DAO.getUserById(data.id[i],function(err,resp1)
{
/* some other work based on resp1 */
DAO.getOtherData(resp1.username,resp1.userId,function(err,resp2)
{
/* similary some other work*/
});
});
}
मेरे पास मेरे ऐप में कई स्थानों पर एक ही पैटर्न है, और कुछ बार मुझे कॉलबैक के साथ समस्या का सामना करना पड़ा, कि लूप खत्म हो गया, लेकिन कॉलबैक प्रतिक्रिया नहीं देता है, ऐसा लगता है कि डीएओ विधि को कॉल किया गया है लेकिन अभी भी प्रतिक्रिया की प्रतीक्षा है। क्या इस मुद्दे को दूर करने के लिए कोई अनुकूलित तरीका है?
यह जानना अच्छा होगा अगर वहाँ कुछ जावास्क्रिप्ट कोडिंग पैटर्न उपलब्ध इस मुद्दे। (किसी भी 3 पार्टी पुस्तकालय के अलावा अन्य) धन्यवाद
* डिफर्ड या वादे * मैंने उनके बारे में सुना लेकिन मैं अपने कोड के साथ कार्यान्वित करना संभव नहीं कर सका। क्या कोई अच्छा संसाधन/ईबुक उपलब्ध है जिसका उपयोग करके मैं अपनी समस्या का समाधान कर सकता हूं? – agpt
@Aman पुस्तक Async जावास्क्रिप्ट। यह पॉल द्वारा उल्लिखित जलप्रपात के बारे में भी बात करता है। आप अपने डीएओ कार्यों को वास्तविक रिटर्न वादे के लिए फिर से लिख सकते हैं और अपने हैंडलर को उनके साथ संलग्न कर सकते हैं। तो आप इस बुरा घोंसले से बच सकते हैं। – schlingel
मैंने इसे थोड़ा कठिन (नोडजेज़ में शुरुआती) पाया, इसके बारे में खेद है, लेकिन क्या आप कुछ कोड को डीफर्ड या वादे का उपयोग करने के लिए उदाहरण के रूप में साझा करेंगे? यह एक अच्छी बात होगी, मूल रूप से मैं किसी भी तृतीय पक्ष पुस्तकालय के लिए नहीं जाना चाहता, इसे स्वयं लिखित तरीके से कार्यान्वित करना चाहता हूं .. कृपया। धन्यवाद – agpt