$q.promise
kullanırken catch
işlevini kullanarak bir hata geri bildirimi kullanmanın arasında bir fark olup olmadığını bana söyleyebilir misiniz?Vaatler - hata geri bildirimi vs yakalamak
E.g. iki kod parçacığı işlevsel olarak eşdeğerdir?
function doSomething0() {
var deferred = $q.defer();
...
return deferred.promise;
}
doSomething0()
.then(doSomething1)
.then(doSomething2)
.then(doSomething3)
.catch(function (err) {
// do something with `err`
});
vs
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);
Eğer öyleyse, neden ikinci birini kullanın? Çok çirkin görünüyor ve bence daha fazla kod çoğaltma yol açar?
ikinci sürümü ile devam etmek için bir çözüme durumuna tekrar sözünü getirmek için izin verir Bir hata veya reddedilen bir söz dışında bir şey döndürerek zaten zinciri. –
Ve hata işleyicisi reddedilen bir söz atar veya döndürürse, üç kez çağrılır. –