doA(function(){ doB(); doC(function() { doD(); }) doE(); }); doF();doA() -> doF() -> doB() -> doC() -> doE() -> doD()
No entiendo por qué el orden de ejecución es el anterior... :(
El orden en que se ejecutan las funciones depende de cómo doA y doC llamen a sus respectivas devoluciones de llamada
Sincrónicamente
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();o Asincrónicamente
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();