Как я могу ждать подключения socket.io для возврата данных с помощью casperJS?

Я очищаю страницу, которая использует socket.io для заполнения некоторых опций выбора тегов. Как можно дождаться получения данных сокетом, прежде чем оценивать страницу? Я используюcasperJS

код сокета (загружается целевым сайтом):

socket.on('list', function (data) {


$.each(data.match_names, function (id, name) {
    if (some condition) {
        /*nothing*/
    } else {
        if (typeof( varname ) == 'function') {
            $('#myselector').append('<option value="' + id + '">' + name + " " + get_tournament_name(id.substr(0, 4)) + '</option>');
        } else {
            $('#myselector').append('<option value="' + id + '">' + name + '</option>');
        }
        match_count++;
    }
});

Я проверяю, что скрипт socket.io загрузился:

casper.waitForResource("socket.io.js", function() {
    this.echo('socket.io has been loaded.'); //is printed

//how can I check that data has arrived from 'socket.on('list', function (data)' ?
});

Но теги опций отсутствуют на странице, возможно потому, что я оцениваю страницу слишком рано

casper.then(function() {
    baseTargetUrl = this.evaluate(function() {
        return __utils__.getElementByXPath('//*[@id="wrapper"]/div[1]/a[2]')["href"];
    });
    console.log('logging: '+baseTargetUrl); // works

    casper.thenOpenAndEvaluate(baseTargetUrl ,function() { //baseTargetUrl is no longer undefined, it's a closure now

        $(function(){ // DOM is ready

            var myOptions = [] ;

            $('select#myselector option').each(function(){
                myOptions.push( $(this).text() + ' : '+$(this).val() ); //additional options have not yet been added

            });

        });
    });
});

Ответы на вопрос(2)

Ваш ответ на вопрос