Я использую обещания для вызова ряда веб-сервисов, но в некоторых случаях я хотел бы использовать перенаправление в середине моей логики. Проблема в том, что цепочка обещаний продолжает выполняться после того, как произошло перенаправление.
Вот код:
myfunc = function() {
return PromiseCall1()
.then(function(data){
if (condition){
$location.path(some_url); // This is a redirection with AngularJS
} else {
return PromiseCall2();
}
})
.then(function(data){
return PromiseCall3();
})
.then(function(data){
// Some other stuff here
})
};
Ожидаемое поведение:
PromiseCall1()
должен быть вызван- если
condition
истинно, никакие другие промисы не должны вызываться, просто выполните перенаправление - если
condition
ложно, необходимо вызвать Promise2, а затем Promise3.
Как бы вы это сделали? Спасибо за помощь.