क्या कोई मुझे बता सकता है कि का उपयोग करते समय त्रुटि कॉलबैक बनाम catch
फ़ंक्शन का उपयोग करने में कोई अंतर है या नहीं?वादा - त्रुटि कॉलबैक बनाम पकड़
उदा। कोड के दो स्निपेट कार्यात्मक रूप से बराबर हैं?
function doSomething0() {
var deferred = $q.defer();
...
return deferred.promise;
}
doSomething0()
.then(doSomething1)
.then(doSomething2)
.then(doSomething3)
.catch(function (err) {
// do something with `err`
});
बनाम
function doSomething0() {
var deferred = $q.defer();
...
return deferred.promise;
}
function errorHandler(err) {
// do something with `err`
}
doSomething0()
.then(doSomething1, errorHandler)
.then(doSomething2, errorHandler)
.then(doSomething3, errorHandler);
यदि हां, तो क्यों एक दूसरे का उपयोग करें? यह बहुत उलझन में दिखता है और मेरी राय में अधिक कोड डुप्लिकेशंस की ओर जाता है?
दूसरे संस्करण आप एक संकल्प लिया राज्य के साथ जारी रखने के लिए में वापस वादा लाने के लिए अनुमति देता है किसी भी त्रुटि या अस्वीकार किए गए वादे के अलावा कुछ भी लौटकर वैसे भी श्रृंखला। –
और यदि त्रुटि हैंडलर खारिज कर देता है या अस्वीकार कर देता है, तो इसे तीन बार कहा जाएगा। –