deferred chain
https://stackoverflow.com/questions/53774494/wait-the-past-function-to-finish-to-start-a-new-one
by ergec
JavaScript
//Chain one after another using previous object
$.when(GetCountry()).then(function() {
return GetGovernerate();
}).then(function() {
return GetDistrict();
}).then(function() {
return GetTown();
}).then(function() {
return GetRoad();
}).done(function() {
$("body").append("<p>all done</p>");
});
//all needed functions
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
function GetCountry() {
$("body").append("GetCountry<br>");
return sleep(1000);
}
function GetGovernerate() {
$("body").append("GetGovernerate<br>");
return sleep(1000);
}
function GetDistrict() {
$("body").append("GetDistrict<br>");
return sleep(1000);
}
function GetTown() {
$("body").append("GetTown<br>");
return sleep(1000);
}
function GetRoad() {
$("body").append("GetRoad<br>");
return sleep(1000);
}