Я думал, что все это уже выяснилось в предыдущих проектах на протяжении многих лет .. Видимо, нет.Угловые обещания и цепочка: как сломать цепочку, если она имеет ошибки бизнес-данных.
Цель: воспользоваться услугой, которая вызывает другие услуги, и если возвращается какой-либо тип ошибки ( не имеет статуса 200), тогда мне нужно, чтобы асинхронная вещь ожидала и не продолжала.
Мне кажется, что я никогда не вижу действительно таких замечательных примеров, поскольку все они очень упрощены.
Я читал различные статьи о том, что (1) делает Угловое под капотом, и я вижу, что есть $ д, .then, .success и т.д ..
Кажется, что у меня возникли проблемы с return
и с другими вложенными и связанными вызовами службы, выполняемыми без какой-либо проверки проблемы.
По существу это изображение показывает, что возвращается
данные: нулевой (что плохо) errorList массив 1 0 «Этот порядок не может быть подано ...» (тоже плохо) hasErrors: правда (плохо, как а)
Так что данные важны для меня, чтобы захватить и показать пользователю, а затем НЕ перейти на дополнительной обработки
Это мой порядок операций
this.submitEnrollment = function (enrollment) {
return getSubmit(requestData);
}
// Which CALLS below
var getSubmit = function (request) {
return SparkRequestService
.submitRequest(request)
.then(
function (resData) {
console.log("resData", resData);
enrollmentService.resetEnrollment();
return resData;
},
function (resData) {
console.log('error');
}
);
}
Тогда я, конечно, призывающих SparkRequestService.submitRequest(request)
, но на основе изображения прилагается, я получаю сообщение об ошибке в resData
Итак, мне кажется, что мне нужно запросить resData
право? Поэтому я действительно НЕ ДОПУСКАЮ эту другую услугу, которая будет называться enrollmentService.resetEnrollment();
Как я могу реорганизовать, чтобы прекратить обработку? if в .then
?
Проблема в том, что 'encrollmentService.resetEnrollment();' будет вызван, потому что технически это деловая ошибка, завернутая в возвращаемый объект, поэтому я не вижу, как 'function (errorResponse)' будет даже попадаться, –
Сладкий, большое вам спасибо! –
Часть вопроса, которая меня смутила, заключается в том, что она говорила ** «не статус 200 **», когда на самом деле вы пытались отклонить ответ http-ответа статуса 200 (OK) при определенных условиях. – georgeawg