node.js - NodeJS: for loop and promises -
एसिंक्रोनस प्रोग्रामिंग सिंक्रोनस प्रोग्रामिंग से बहुत अधिक कठिन है।
नोडजेएस का उपयोग करना, मैं निम्नलिखित कोशिश कर रहा हूं : <पूर्व> लेकिन मैं चाहता हूं कि लूप केवल तभी जारी रखे जब डू स्टफ भाग पूरा हो। कोई भी विचार यह कैसे आसानी से प्राप्त किया जा सकता है ...? धन्यवाद! असेंक प्रोग्रामिंग भ्रमित हो सकती है, लेकिन अधिकांश भ्रम समाप्त हो सकते हैं यदि आप कॉलबैक और वादा पुस्तकालयों, अन्य दो उत्तरों में यदि आपके पास मूल्यों, या वादों की एक सरणी है, तो एक और पुस्तकालय है जो इसे इस दृष्टिकोण से आपको एसिंक्रोनस, वायदा-रिटर्निंग फ़ंक्शन को कॉल करने की ज़रूरत नहीं है, फिर से दिए गए वादे को एक सरणी में संग्रहीत करें, फिर उस सरणी को तो, मान लें कि आपके पास सिर्फ मान हैं: आप निम्न की तरह कुछ कर सकते हैं: नोट : अपेक्षित रूप से कार्य करने के लिए, इसके अलावा ध्यान दें तीसरा तर्क से अंतिम नोट: ये है। यह बहुत सारे उदाहरणों के साथ बहुत अच्छी तरह से लिखा गया है, और यह पता लगाने का एक शानदार तरीका है कि कैसे वादे आपके जीवन को आसान बनाने में सहायता कर सकते हैं। आशा है कि यह मदद करता है !!! के लिए (var i = 0; i & lt; 10; i ++) {someFunction ()। तब (function () {// Do stuff}); }
जैसी चीज़ों को ध्यान में रखते हैं तो बाद में चलाएगा, जो कोड ब्लॉक में शामिल हैं वे पहले ही समाप्त हो चुके हैं
async मॉड्यूल, प्रोग्राम के प्रवाह पर अधिक नियंत्रण पाने के सभी प्रयास हैं। यहां समझाए गए विभिन्न दृष्टिकोण हैं, जो वास्तव में एक ही समस्या के विभिन्न वैकल्पिक समाधान देखकर मुझे चीजों को समझने में मदद करते हैं।
Q.all () का उल्लेख है। यह अच्छी तरह से काम करता है, अगर आपके पास पहले ही वादों की एक सरणी है
bluebird नामक और भी आसान बनाता है। इसकी एक विधि है
.map () जिसे आप एक सरणी के साथ एक वायर्ड श्रृंखला शुरू करने के लिए उपयोग कर सकते हैं।
Q.all पर पास करें। यह आपको कुछ कदम बचाता है।
var आइटम = [0,1,2,3,4,5, 6,7,8,9];
Promise.map (आइटम, फ़ंक्शन (आइटम) {वापसी PerformAsyncOperation (item);}, {concurrency: n})। तब (फ़ंक्शन (allResults) {// 'allResults' में अब सभी के एक सरणी शामिल है / / 'performAsyncOperation'} के परिणाम)
performAsyncOperation को वादा वापस करना होगा
Promise.map () :
{concurrency: n} । निर्दिष्ट किए गए इस विकल्प के साथ, ब्लूबर्ड केवल एक ही समय में
n परिचालन की अनुमति देगा, जो कि उपयोगी हो सकता है यदि आपके पास सिस्टम पर भारी मात्रा में काम करने की प्रक्रिया होती है जो सिस्टम को डूब जाती है एक बार में (नेटवर्क कनेक्शन, फ़ाइल हाथ, आदि)
Comments
Post a Comment