केक ... ehm, कोड के इस टुकड़े पर विचार करें:क्या यह कार्य कचरा-एकत्रित हो सकता है?
'use strict'
function doWork() {
return new Promise(function (resolve, reject) {
// work work work...
// Done! But... where's the resolve() ???
})
}
doWork().then(function doMoreWork() {
// Some more work to do...
})
एक बार वादा के निर्माता में समारोह खत्म ...
Promise
वस्तु कचरा-संग्रहणीय है?doMoreWork()
कचरा-संग्रहणीय है?
मेरा अनुमान है कि doMoreWork()
नहीं किया जा सकता जीसी एड सीधे क्योंकि वादा इसे करने के लिए एक संदर्भ रहता है, लेकिन एक बार वादा के शरीर खत्म और ऊपरी (?) गुंजाइश के लिए निष्पादन संदर्भ देता है, ढेर unwinds (क्योंकि निष्पादित करने के लिए यहां कोई और वक्तव्य नहीं है) और वादा पहुंचने योग्य नहीं है, इस प्रकार कचरा-संग्रहणीय है।
क्या आप इस बात की पुष्टि कर सकते हैं कि इस विषय की मेरी समझ सही है?
मैं इस व्यवहार का अनुभव कैसे कर सकता हूं? दूसरे शब्दों में, मैं कैसे निगरानी कर सकता हूं कि कौन सी ऑब्जेक्ट्स जीसी-एड हैं और कब? मैं पूरी तरह से Node.js में विकसित होता हूं, अगर इससे कोई फर्क पड़ता है।
क्या आपका मतलब है कि आपका काम कभी भी 'हल() 'नहीं कहता है? हां, उस स्थिति में आपकी सभी वस्तुओं को तुरंत जीसी पर संदेह होगा। – Bergi