My Program Structure is Like this
function a(){
b().then(function(res){
})
f().then(function(res){
})
}
and then function c(){
d().then(function(res){
});
e().then(function(res){
})
};
function b(){
//async operation
}
function f(){
//async operation
}
function e(){
//async operation
}
function d(){
//async operation
}
What i want to achieve is that when every function inside b is done , then c must start working , So Basically I need a little help in structuring my program but i cannot change much of my inside function as I have written a lot of them and it's working with timeout but I know it's a very poor workaround but if you can suggest how to do it with minimal modification it would be helpful and even if I have to modify it what will be the best approach to do so ? , So I can prevent mistakes in future.
I finally solved the problem by making proper use of promise.push and then resolving all the promises in $q.all(promise)
function a() {
var deferred = $q.defer();
deferred.resolve('a')
return deferred.promise;
}
function b() {
var deferred = $q.defer();
deferred.resolve('b')
return deferred.promise;
}
function a() {
var deferred = $q.defer();
deferred.resolve('a')
return deferred.promise;
}
function b() {
var deferred = $q.defer();
deferred.resolve('b')
return deferred.promise;
}
function g() {
var deferred = $q.defer();
deferred.resolve('a')
return deferred.promise;
}
function h() {
var deferred = $q.defer();
deferred.resolve('b')
return deferred.promise;
}
function c() {
var deferred = $q.defer();
var promise = [];
promise.push(a().then(function(res) {
return res
}));
promise.push(b().then(function(res) {
return res;
})) $q.all(promise).then(function(res) {
deferred.resolve(res);
}) return deferred.promise;
}
function e() {
var deferred = $q.defer();
var promise = [];
promise.push(g().then(function(res) {
return res
})) promise.push(h().then(function(res) {
return res;
})) $q.all(promise).then(function(res) {
deferred.resolve(res);
}) return deferred.promise;
}
function final() {
var deferred = $q.defer();
var promise = [];
promise.push(c().then(function(res) {
return res
})) promise.push(e().then(function(res) {
return res;
})) $q.all(promise).then(function(res) {
deferred.resolve(res);
}) return deferred.promise;
}
final().then(function(res) {
console.log('move next')
})