Qué significa 'entonces' realmente significa en CasperJS

Estoy usando CasperJS para automatizar una serie de clics, formularios completados, análisis de datos, etc. a través de un sitio web.

Casper parece estar organizado en una lista de pasos preestablecidos en forma dethen declaraciones (ver su ejemplo aquí:http: //casperjs.org/quickstart.htm) pero no está claro qué desencadena la ejecución de la siguiente declaración.

Por ejemplo, then espera a que se completen todas las solicitudes pendientes? HaceinjectJS cuenta como una solicitud pendiente? ¿Qué pasa si tengo unathennstrucción @ anidada - encadenada al final de unaopen declaración?

casper.thenOpen('http://example.com/list', function(){
    casper.page.injectJs('/libs/jquery.js');
    casper.evaluate(function(){
        var id = jQuery("span:contains('"+itemName+"')").closest("tr").find("input:first").val();
        casper.open("http://example.com/show/"+id); //what if 'then' was added here?
    });
});

casper.then(function(){
    //parse the 'show' page
});

Estoy buscando una explicación técnica de cómo funciona el flujo en CasperJS. Mi problema específico es que mi últimathena declaración @ (arriba) se ejecuta antes de micasper.open declaración y no sé por qué.

Respuestas a la pregunta(3)

Su respuesta a la pregunta