जैसा कि मैं समझता हूं कि एक वादा कुछ ऐसा है जो हल कर सकता है () या अस्वीकार () लेकिन मुझे यह पता लगाने के लिए आश्चर्य हुआ कि वादा में कोड एक संकल्प या अस्वीकार के बाद निष्पादित करना जारी है।
मैंने संकल्प किया या बाहर निकलने या वापसी का एक async-अनुकूल संस्करण होने को अस्वीकार कर दिया, जो सभी तत्काल कार्य निष्पादन को रोक देगा।
क्या कोई इसके पीछे सोचा समझा सकता है कि निम्न उदाहरण कभी-कभी एक समाधान कॉल के बाद कंसोल.लॉग दिखाता है:
var call = function() {
return new Promise(function(resolve, reject) {
resolve();
console.log("Doing more stuff, should not be visible after a resolve!");
});
};
call().then(function() {
console.log("resolved");
});
resolve()
जेएस कंट्रोल स्टेटमेंट नहीं है जो जादुई तरीके से असर करता हैreturn
, यह सिर्फ एक फंक्शन कॉल है, और हां, इसके बाद भी निष्पादन जारी रहता है।