किसी मामले में, जब मुझे एक वादे की वस्तु से वापसी मूल्य मिलता है, तो मुझे दो अलग-अलग then()
प्राथमिकताओं को शुरू करने की आवश्यकता होती है, जो मूल्य की स्थिति पर निर्भर करते हैं, जैसे:
promise().then(function(value){
if(//true) {
// do something
} else {
// do something
}
})
मैं सोच रहा हूँ शायद मैं इसे लिख सकता हूँ:
promise().then(function(value){
if(//true) {
// call a new function which will return a new promise object
ifTruePromise().then();
} else {
ifFalsePromise().then();
}
})
लेकिन इसके साथ, मेरे दो सवाल हैं:
मुझे यकीन नहीं है कि यह एक नया वादा शुरू करने के लिए एक अच्छा विचार है-फिर एक वादे में प्रक्रिया;
क्या होगा अगर मुझे आखिरी में एक फ़ंक्शन को कॉल करने के लिए दो प्रक्रिया की आवश्यकता है? इसका मतलब है कि उनके पास एक ही "टर्मिनल" है
मैंने मूल श्रृंखला को बनाए रखने के लिए नया वादा वापस करने की कोशिश की:
promise().then(function(value){
if(//true) {
// call a new function which will return a new promise object
// and return it
return ifTruePromise();
} else {
// do something, no new promise
// hope to stop the then chain
}
}).then(// I can handle the result of ifTruePromise here now);
लेकिन इस मामले में, चाहे वह सच हो या गलत, अगला then
काम करेगा।
तो, इसे संभालने के लिए सबसे अच्छा अभ्यास क्या है?