परिदृश्य में जहाँ कॉलबैक कुछ अन्य समारोह से कहा जाएगा, नहीं अपने खुद के कोड के लिए एक नया संस्करण और आप अतिरिक्त पैरामीटर जोड़ना चाहते हैं।
उदाहरण के लिए, आइए दिखाएं कि आपके पास सफलता और त्रुटि कॉलबैक के साथ बहुत से नेस्टेड कॉल हैं। मैं इस उदाहरण के लिए कोणीय वादे का उपयोग करूंगा लेकिन कॉलबैक के साथ किसी भी जावास्क्रिप्ट कोड उद्देश्य के लिए समान होगा।
someObject.doSomething(param1, function(result1) {
console.log("Got result from doSomething: " + result1);
result.doSomethingElse(param2, function(result2) {
console.log("Got result from doSomethingElse: " + result2);
}, function(error2) {
console.log("Got error from doSomethingElse: " + error2);
});
}, function(error1) {
console.log("Got error from doSomething: " + error1);
});
अब आप त्रुटियों लॉग इन करने के एक समारोह को परिभाषित करने, डीबगिंग उद्देश्यों के लिए त्रुटि के मूल रखकर अपने कोड unclutter कर सकते हैं।
someObject.doSomething(param1, function (result1) {
console.log("Got result from doSomething: " + result1);
result.doSomethingElse(param2, function (result2) {
console.log("Got result from doSomethingElse: " + result2);
}, handleError.bind(null, "doSomethingElse"));
}, handleError.bind(null, "doSomething"));
/*
* Log errors, capturing the error of a callback and prepending an id
*/
var handleError = function (id, error) {
var id = id || "";
console.log("Got error from " + id + ": " + error);
};
बुला समारोह अभी भी अपने कॉलबैक फ़ंक्शन पैरामीटर के बाद त्रुटि पैरामीटर जोड़ देगा: इस तरह आप अपने कोड refactor करने के लिए आगे बढ़ना होगा है।
स्रोत
2016-09-29 08:59:29
क्या आप काम करना चाहिए कर रहे हैं। आपके पास क्या समस्याएं हैं? –
आपका कोड ठीक काम करता है, समस्या क्या है? – Sarfraz
यह काम करना चाहिए ... http://jsfiddle.net/QXQZj/ – Hristo