नोड 4.x का उपयोग करना। जब आपके पास Promise.all(promises).then()
है, तो डेटा को हल करने और अगले .then()
पर जाने का उचित तरीका क्या है?Promise.all()। फिर() हल करें?
मैं इस तरह कुछ करना चाहता हूँ:
Promise.all(promises).then(function(data){
// Do something with the data here
}).then(function(data){
// Do more stuff here
});
लेकिन मुझे यकीन है 2 .then()
करने के लिए डेटा प्राप्त करने के लिए नहीं कर रहा हूँ। मैं पहले .then()
में resolve(...)
का उपयोग नहीं कर सकता। मैं पता लगा मैं यह कर सकता:
return Promise.all(promises).then(function(data){
// Do something with the data here
return data;
}).then(function(data){
// Do more stuff here
});
लेकिन वह यह करने के लिए उचित तरीके से ... यह करने के लिए सही दृष्टिकोण क्या है की तरह प्रतीत नहीं होता?
दिलचस्प। धन्यवाद। तो शुरुआती 'वादा' समारोह के बाद मूल्य को अस्वीकार करना संभव नहीं है? या श्रृंखला में कहीं भी एक त्रुटि फेंकने से आपको '.catch() 'पर ले जाया जाएगा? यदि ऐसा है, तो पहले स्थान पर 'अस्वीकार' का क्या मतलब है? क्यों न सिर्फ त्रुटि फेंक? धन्यवाद, –
@ जेक विल्सन: वे अलग-अलग प्रश्न हैं। लेकिन आप दो अलग-अलग चीजों को भ्रमित कर रहे हैं: * बनाना * और वचन को सुलझाना, और * वचन * को संभालना। जब आप वादे बना रहे हैं और निपटारे कर रहे हैं, तो आप 'हल करें' और 'अस्वीकार' का उपयोग करते हैं। जब आप * हैंडलिंग * कर रहे हैं, यदि आपकी प्रसंस्करण विफल हो जाती है, तो आप विफलता पथ को ट्रिगर करने के लिए वास्तव में अपवाद फेंक देते हैं।और हां, आप मूल 'वादा' कॉलबैक ('अस्वीकार' का उपयोग करने के बजाय) से अपवाद भी फेंक सकते हैं, लेकिन सभी विफलताओं अपवाद नहीं हैं। –
अच्छी तरह से समझाया। फिर से धन्यवाद –