I read through various threads like this one for example.
But it really escapes me how to accomplish the following:
I have 4 functions, and want them happen one after another in sequence. Notice they are in incorrect order, to get my point across. I want the result that will output “1, 2, 3, 4′
function firstFunction(){
// some very time consuming asynchronous code...
console.log('1');
}
function thirdFunction(){
// definitely dont wanna do this until secondFunction is finished
console.log('3');
}
function secondFunction(){
// waits for firstFunction to be completed
console.log('2');
}
function fourthFunction(){
// last function, not executed until the other 3 are done.
console.log('4');
}
I tried to figure out callbacks but am getting lost 🙁
Isn’t there some simple way to do this? Like looping through an array…
It’s a great chance to start using jQuery Deferred.
Apart from the callbacks-based solution the code is readable, flexible and highly maintainable
http://jsfiddle.net/zerkms/zJhph/
PS: as an example of asynchronous code I’ve used
setTimeout. The main thing is that in the end of the asynchronous part you need to calld.resolve()to continue chaining methods.