doA(function(){
doB();
doC(function() {
doD();
})
doE();
});
doF();
doA() -> doF() -> doB() -> doC() -> doE() -> doD()
I don't understand why the execution order is as above...:(
The order the functions are executed depends on how doA and doC call their respective callbacks
Synchronously
function doA(cb) { console.log('doA'); cb(); }
function doB() { console.log('doB'); }
function doC(cb) { console.log('doC'); cb(); }
function doD() { console.log('doD'); }
function doE() { console.log('doE'); }
function doF(cb) { console.log('doF');}
doA(function(){
doB();
doC(function() {
doD();
})
doE();
});
doF();
or Asynchronously
function doA(cb) { console.log('doA'); setTimeout(cb); }
function doB() { console.log('doB'); }
function doC(cb) { console.log('doC'); setTimeout(cb); }
function doD() { console.log('doD'); }
function doE() { console.log('doE'); }
function doF(cb) { console.log('doF');}
doA(function(){
doB();
doC(function() {
doD();
})
doE();
});
doF();