Я выполняю несколько вызовов ajax и хочу завершить все из них, прежде чем отобразить форму.Если есть ошибка, я хочу остановить обработку и просто показать первую обнаруженную ошибку.Я погуглил много статей, в том числе о StackOverflow, которые показывают, как связать операторы then.Но, похоже, я должен прикрепить к каждому из них зацепку, в противном случае только ошибки в последнем утверждении отлавливаются.В этом примере Lookup - это асинхронный вызов, который возвращает обещание, а ShowError обрабатывает ошибку:
Data.Lookup("a")
.then(function(result) {
vm.a = result;
Data.Lookup("b")
.then(function(result) {
vm.b = result;
Data.Lookup("c")
.then(function(result) {
vm.c = result;
})
.catch(function(response) {
vm.showError(response);
});
})
.catch(function(response) {
vm.showError(response);
});
})
.catch(function(response) {
vm.showError(response);
});
Если предположить, что есть хотя бы одна ошибка, есть ли способ использовать один перехват, который вызоветкогда обнаружена ПЕРВАЯ ошибка?
Это требование отличается от вопроса Дождитесь разрешения всех обещаний .Как указано в заголовке, этот пользователь хочет обрабатывать ВСЕ обещания.Я рад выйти, когда после ПЕРВОГО обещания с ошибкой.