के बीच क्या अंतर है:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return "bbb";
})
.then(function(result) {
console.log(result);
});
और इस:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return Promise.resolve("bbb");
})
.then(function(result) {
console.log(result);
});
जैसा कि मैं पूछ रहा हूँ कि मैं अलग-अलग व्यवहार कर रहा हूँ। थोड़ा बहुत कोड इसलिए पहले उदाहरण ऊपर।
thenहैंडलर से एक वादा वापस करने के साथ कुछ भी गलत नहीं है, वास्तव में, यह वादों की कल्पना का एक प्रमुख पहलू है जो आप कर सकते हैं।
thenएस के साथ काम करता है - इसके लिए 'अन्य भाषाएं' शब्द thenएक mapऔर एक दोनों है flatMap।
new Promise((res, rej) => { return fetch('//google.com').then(() => { return "haha"; }) }).then((result) => alert(result));यह कोड बस लटका रहेगा (हमेशा के लिए हल नहीं किया गया)। लेकिन अगर मैं बदल return "haha";जाता हूं return res("haha");तो यह काम करेगा और "हाहा" को सतर्क करेगा। क्या भ्रूण () नहीं था। तब () पहले से ही हल किए गए वादे में "हाहा" लपेटता है?
Promise.resolve()दूसरे उदाहरण में अनावश्यक है।