जावास्क्रिप्ट में कॉलबैक के साथ अतुल्यकालिक कोड
मान लीजिए कि हमारे पास कुछ अतुल्यकालिक फ़ंक्शन है:
function make() {
setTimeout(function() {
console.log('1');
}, 3000);
}
मान लीजिए कि हम इस फ़ंक्शन का उपयोग इस प्रकार करते हैं:
make();
console.log('2'); // पहले निष्पादित होगा
मान लीजिए कि हम ऐसा करना चाहते हैं कि दूसरा
कंसोल आउटपुट तब निष्पादित हो, जब फ़ंक्शन के अंदर
अतुल्यकालिक ऑपरेशन निष्पादित हो जाए।
इसके लिए उपयोग किए जाने वाले दृष्टिकोणों में से एक
कॉलबैक का उपयोग है:
प्रतीक्षारत कोड को एक अनाम फ़ंक्शन में लपेटें
और इसे फ़ंक्शन make में पैरामीटर के रूप में पास करें:
make(function() {
console.log('2');
});
निःसंदेह, यह अपने आप में हमारी समस्या का
समाधान नहीं करेगा। अभी हमने केवल यह समझौता किया है: make के ट्रिगर होने के बाद
कोड निष्पादित करने की इच्छा होने पर
इस कोड को कॉलबैक के रूप में make कॉल में पास करें।
make फ़ंक्शन के कोड को ठीक करें ताकि
यह हमारे समझौते के अनुसार काम करना शुरू कर दे:
function make(callback) {
setTimeout(function() {
console.log('1'); // कोई अतुल्यकालिक ऑपरेशन, एक या अधिक भी हो सकते हैं
callback(); // फिर हमारा कॉलबैक
}, 3000);
}
बताएं कि कंसोल में संख्याएँ किस क्रम में प्रदर्शित होंगी:
function make(callback) {
setTimeout(function() {
console.log('1');
callback();
}, 3000);
}
make(function() {
console.log('2');
console.log('3');
});