无法动态设置CasperJS中eachThen API使用的URL列表

时间:2014-02-22 17:42:17

标签: javascript casperjs

我试图在casperJS中使用新的1.1 eachThen()API但是我发现它有一些奇怪的行为。

下面是一个简单的应用程序

var casper = require('casper').create({
    verbose: true,
    logLevel: "error"
});
var urls = ['http://google.com/'];

casper.start();

var testvar = "";

casper.then(function() {
    urls = ['http://yahoo.com/', 'http://www.youtube.com/'];
});

casper.eachThen(urls, function(response) {
    console.log("Opening: "+response.data);
    this.thenOpen(response.data, function(response) {
        testvar = response.url;
    });
});

casper.run();

我理解的方式是这个应用程序应该打开yahoo.com跟随youtube.com但是之前的步骤中的数组赋值似乎根本没有被考虑,输出将是"打开: http://google.com/"

是否有人知道这样做有任何限制,或者这可能是当前(beta)版本的casperJS中的错误。我正在使用最新的1.1.0-DEV

1 个答案:

答案 0 :(得分:0)

要回答我自己的问题,将整个事情包装在then()步骤中执行的工作如注释中的hexid所解释,但似乎不可能将其作为“独立”执行(由于错误或按设计,目前我不确定。)