"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > किसी सारणी से गुजरने वाले पैरामीटर के साथ वादे के निष्पादन को कैसे अनुक्रमित करें?

किसी सारणी से गुजरने वाले पैरामीटर के साथ वादे के निष्पादन को कैसे अनुक्रमित करें?

2024-11-18 को प्रकाशित
ब्राउज़ करें:161

How to Sequence Promise Execution with Parameter Passing from an Array?

एक सरणी से गुजरने वाले पैरामीटर के साथ वादों का अनुक्रमिक निष्पादन

उस परिदृश्य पर विचार करें जहां आपके पास मूल्यों की एक सरणी है (उदाहरण के लिए, myArray) और एक वादे को निष्पादित करने की आवश्यकता है- आधारित फ़ंक्शन (उदाहरण के लिए, myPromise) क्रमिक रूप से, प्रत्येक सरणी तत्व को एक पैरामीटर के रूप में पास करता है। आप एक "रोकने योग्य लूप" कैसे कार्यान्वित कर सकते हैं जो सुनिश्चित करता है कि वादों को सही क्रम में हल किया गया है? और पुनरावृत्तीय प्रसंस्करण। यहां एक कोड स्निपेट है जो दर्शाता है कि यह कैसे किया जा सकता है:

myArray.reduce( (पी, एक्स) => p.then(() => myPromise(x)), वादा.संकल्प() )

यह दृष्टिकोण सरणी पर पुनरावृति करने और श्रृंखलाबद्ध वादों की एक श्रृंखला बनाने के लिए कम विधि का लाभ उठाता है। पिछले वादे के पूरा होने के बाद प्रत्येक वादे का समाधान किया जाता है, निष्पादन के वांछित अनुक्रम को प्रभावी ढंग से लागू किया जाता है। फ़ंक्शन:

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)

यह फ़ंक्शन सरणी पर पुनरावृत्त होता है, परिणाम सरणी में वादों के परिणामों को जमा करता है, और अंत में एकत्रित परिणाम लौटाता है।

विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729407377 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3