我试图在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
答案 0 :(得分:0)
要回答我自己的问题,将整个事情包装在then()步骤中执行的工作如注释中的hexid所解释,但似乎不可能将其作为“独立”执行(由于错误或按设计,目前我不确定。)