जावास्क्रिप्ट वादा। दौड़ () विधि

Javaskripta Vada Daura Vidhi



Promise.race () विधि जावास्क्रिप्ट की एक अंतर्निहित विधि है जो एक तर्क के रूप में वादों के चलने योग्य को लेती है और पहला वादा लौटाती है जिसे हल या अस्वीकार कर दिया जाता है। Promise.race() विधि या तो पूर्ति मान लौटाएगी या अस्वीकृति का कारण। Iterables ऐसी वस्तुएं हैं जिन्हें Arrays, Strings और Maps जैसे लूप किया जा सकता है।

वैसे भी वादे क्या हैं?

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

चलो example_promise = नया वादा ( ( हल करना, अस्वीकार करना ) => {
हल करना ( 'वादा किया गया है' ) ;
} ) ;

उदाहरण_वादा। फिर ( आर => सांत्वना देना। लकड़ी का लट्ठा ( आर ) ) ;







वादों की अतुल्यकालिक प्रकृति:



चलो example_promise = नया वादा ( ( हल करना, अस्वीकार करना ) => {
हल करना ( 'वादा किया गया है' ) ;
} ) ;

उदाहरण_वादा। फिर ( आर => सांत्वना देना। लकड़ी का लट्ठा ( आर ) ) ;
सांत्वना देना। लकड़ी का लट्ठा ( '1,2,3...' ) ;



Promise.race () विधि का उपयोग कैसे करें?

Promise.race() विधि के वादों का एक पुनरावृत्तीय पास करें और चर में इसका रिटर्न मान प्राप्त करें:





चलो प्रोम1 = नया वादा ( ( हल करना, अस्वीकार करना ) => {
सेटटाइमआउट ( ( ) => हल करना ( 'वादा किया गया है' ) , 500 ) ;
} ) ;

चलो Prom2 = नया वादा ( ( हल करना, अस्वीकार करना ) => {
सेटटाइमआउट ( ( ) => अस्वीकार ( 'वादा नहीं सुलझाया जा सका' ) , 250 ) ;
} ) ;

अस्थायी होने दो = वायदा। जाति ( [ प्रोम1, प्रोम2 ] ) ;

अस्थायी पकड़ ( कारण => सांत्वना देना। लकड़ी का लट्ठा ( कारण ) ) ;

इस उदाहरण में हमारे पास दो वादे थे। पहला वादा 500ms के बाद हल किया गया था और दूसरा वादा 250 सेकंड के बाद ही खारिज कर दिया गया था। जैसा कि दूसरा वादा पहला था जिसे या तो हल किया गया या अस्वीकार कर दिया गया, इसे Promise.race() विधि द्वारा वापस कर दिया गया था।



यदि Promise.race() विधि को दिया गया तर्क एक खाली चलने योग्य है तो विधि हमेशा के लिए लंबित वादा वापस कर देगी:

अस्थायी होने दो = वायदा। जाति ( [ ] ) ;

सांत्वना देना। लकड़ी का लट्ठा ( अस्थायी ) ;

यदि तर्क चलने योग्य में कोई गैर-वादा मूल्य या वादे हैं जो पहले ही पूरे या अस्वीकार कर दिए गए हैं तो विधि सरणी में पहले मान के लिए व्यवस्थित होगी:

चलो p1 = नया वादा ( ( हल करना, अस्वीकार करना ) => {
हल करना ( 'P1 का समाधान कर दिया गया है' ) ;
} ) ;

चलो p2 = नया वादा ( ( हल करना, अस्वीकार करना ) => {
हल करना ( 'P2 का समाधान कर दिया गया है' ) ;
} ) ;

अस्थायी होने दो = वायदा। जाति ( [ पी1, पी2 ] ) ;
अस्थायी फिर ( मूल्य => सांत्वना देना। लकड़ी का लट्ठा ( मूल्य ) ) ;

Promise.race () विधि हल और अस्वीकृत वादों दोनों के लिए जाँच करती है। इस पद्धति का एक और विकल्प भी है जो Promise.any() विधि है जिसका उपयोग केवल पूरे किए गए वादों की जांच के लिए किया जा सकता है।

निष्कर्ष

Promise.race () विधि का उपयोग पहला वादा प्राप्त करने के लिए किया जाता है जो या तो पूरा हो जाता है या वादों के चलने योग्य से अस्वीकार कर दिया जाता है। वादा जो जल्द से जल्द पूरा या खारिज कर दिया गया है, वह प्रॉमिस.रेस () का रिटर्न वैल्यू है। राइट-अप ने Promise.race () पद्धति में गहन अंतर्दृष्टि प्रदान की।