Для углового проекта мне нужно выполнить обещания, и я сталкиваюсь с ситуациями, когда я не уверен, что делаю. Вот один мой код:Угловые условные обещания
return Action1().then(function (data) {
var defer = $q.defer();
if (data.condition) {
$q.all([Action2(), Action3(), Action4()]).then(function() {
defer.resolve();
});
} else {
defer.reject("error_code");
}
return defer.promise;
});
Action1, Мотор2, действий3 и действий4 работают обещания функции. Много обещаний и действий зависит от условий. Могу ли я это сделать и быть уверенным, что моя основная функция будет всегда решена или отвергнута?
Я прочитал, что мы можем передать обещание внутри функции разрешения. Могу ли я сделать это, и это то же самое, что и выше:
return Action1().then(function (data) {
var defer = $q.defer();
if (data.condition) {
defer.resolve($q.all([Action2(), Action3(), Action4()]);
} else {
defer.reject("error_code");
}
return defer.promise;
});
Вы редактировали свой ответ. Я просил вторую часть, но вы отвечаете на нее во время публикации. Я начинаю с обещаний. Я изучаю форму (откладываю с решимостью и отвергаю), и я использовал ее во всем проекте. Большое спасибо за указание на то, что я могу использовать непосредственно $ q или ошибку throw. – JeromeModi