javascript - Async calls and updating variables -
निम्नलिखित जावास्क्रिप्ट स्निपेट पर विचार करें -
var x; asyncFunction (); syncFunction (); फ़ंक्शन सिंक फंक्शन () {console.log (x); } समारोह asyncFunction () {// किसी भी async कॉल या एक एजेक्स कॉल // setTimeout (function () {// x = 5; //}, 1000); }
x चर का मान अनिर्धारित है, क्योंकि async फ़ंक्शन निष्पादित करने के लिए कुछ समय लेता है। यह मानते हुए कि मेरे पास वादा / स्थगित, पब-उप का उपयोग करने की स्वतंत्रता नहीं है, और मुझे ऊपर दिए स्निपेट में एसिंक और सिंक कॉल के निष्पादन के क्रम को नहीं बदलना चाहिए, मैं एक्स के सही मूल्य को कैसे प्राप्त कर सकता हूं ठीक से लॉग इन? यह एक साक्षात्कार प्रश्न था जो मुझसे हाल ही में पूछा गया।
एसिंक फ़ंक्शन के बाद चलाने के लिए कुछ भी होना चाहिए जब इसे किया जाता है तो async फ़ंक्शन से बुलाया जाता है - एक कॉलबैक।
var x; asyncFunction (syncFunction); // कॉलबैक फ़ंक्शन सिंक फंक्शन के रूप में फ़ंक्शन पास करें () {console.log (x); } समारोह asyncFunction (callback) {// अपने उदाहरण setTimeout का उपयोग (समारोह () {x = 5; कॉलबैक ();}, 1000); }
Comments
Post a Comment