CasperJS: перебираем URL

Я довольно новичок в CasperJS, но нет ли способа открыть URL и выполнить команды CasperJS для циклов? Например, этот код не работает так, как я ожидал:

casper.then(function() {
    var counter = 2013;
    for (i = counter; i < 2014; i++) {
        var file_name = "./Draws/wimbledon_draw_" + counter + ".json";
        // getting some local json files
        var json = require(file_name);
        var first_round = json["1"];
        for (var key in first_round) {
            var name = first_round[key].player_1.replace(/\s+/g, '-');
            var normal_url = "http://www.atpworldtour.com/Tennis/Players/" + name;
            // the casper command below only executes AFTER the for loop is done
            casper.thenOpen(normal_url, function() {
                this.echo(normal_url);
            });
        }
    }
});

Вместо каспера зоветthenOpen на каждом новом URL за итерацию он вызывается только ПОСЛЕ выполнения цикла for. CasperthenOpen затем вызывается с последним значением normal_url. Нет ли команды Каспера, чтобы она работала на каждой итерации цикла for?

Продолжение: Как заставить casper thenOpen возвращать значение на текущей итерации цикла for?

Скажем, например, мне нужно было вернуть значение на этомthenOpen (возможно, если статус HTTP 404, мне нужно оценить другой URL, поэтому я хочу вернуть false). Возможно ли это сделать?

редактированиеcasper.thenOpen позвоните выше:

    var status;
    // thenOpen() only executes after the console.log statement directly below
    casper.thenOpen(normal_url, function() {
        status = this.status(false)['currentHTTPStatus'];
        if (status == 200) {
            return true;
        } else {
            return false;
        }
    });
    console.log(status); // This prints UNDEFINED the same number of times as iterations.

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

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