उस परिदृश्य पर विचार करें जहां आपके पास मूल्यों की एक सरणी है (उदाहरण के लिए, myArray) और एक वादे को निष्पादित करने की आवश्यकता है- आधारित फ़ंक्शन (उदाहरण के लिए, myPromise) क्रमिक रूप से, प्रत्येक सरणी तत्व को एक पैरामीटर के रूप में पास करता है। आप एक "रोकने योग्य लूप" कैसे कार्यान्वित कर सकते हैं जो सुनिश्चित करता है कि वादों को सही क्रम में हल किया गया है? और पुनरावृत्तीय प्रसंस्करण। यहां एक कोड स्निपेट है जो दर्शाता है कि यह कैसे किया जा सकता है:
यह दृष्टिकोण सरणी पर पुनरावृति करने और श्रृंखलाबद्ध वादों की एक श्रृंखला बनाने के लिए कम विधि का लाभ उठाता है। पिछले वादे के पूरा होने के बाद प्रत्येक वादे का समाधान किया जाता है, निष्पादन के वांछित अनुक्रम को प्रभावी ढंग से लागू किया जाता है। फ़ंक्शन:
myArray.reduce( (p, x) => p.then(() => myPromise(x)), Promise.resolve() )
यह फ़ंक्शन सरणी पर पुनरावृत्त होता है और प्रत्येक तत्व पर रुकता है, अगले पुनरावृत्ति पर आगे बढ़ने से पहले वादे के हल होने की प्रतीक्षा करता है।
यदि आपको वादों के रिटर्न मानों को एक सरणी में एकत्र करने की आवश्यकता है, तो आप forEachSeries फ़ंक्शन को संशोधित कर सकते हैं इस प्रकार है:
const forEachSeries = async (iterable, action) => { for (const x of iterable) { await action(x) } } forEachSeries(myArray, myPromise)
यह फ़ंक्शन सरणी पर पुनरावृत्त होता है, परिणाम सरणी में वादों के परिणामों को जमा करता है, और अंत में एकत्रित परिणाम लौटाता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3