如何在PhantomJS中循环遍历数组/对象
我有一个要循环的对象。目前,我正在循环它,如下所示:如何在PhantomJS中循环遍历数组/对象,phantomjs,casperjs,Phantomjs,Casperjs,我有一个要循环的对象。目前,我正在循环它,如下所示: for(var i = 0; i< coupons.length; i++) { var couponObj = []; var coupon=coupons[i]; var casper = require('casper').create(); casper.start(); casper.then(function(){console.log(JSON.stringify(coup
for(var i = 0; i< coupons.length; i++) {
var couponObj = [];
var coupon=coupons[i];
var casper = require('casper').create();
casper.start();
casper.then(function(){console.log(JSON.stringify(coupon);}
//some other work
);
}
for(var i=0;i
问题是它在不输入casper.then(function(){console.log('here')}
一旦它执行了循环,它就会执行
casper.then(function(){console.log(JSON.stringify(优惠券);}
,最后一个值就是culops[culops.length]
因为CasperJS的许多函数都是异步的,所以没有将代码包装在一个Casper中。然后,
会导致它们无序运行。您可以通过以下方法解决这个问题
var coupons = [[1, 2], [2, 3], [3, 4]]; // fake values for testing
casper.start();
casper.then(function() {
this.eachThen(coupons, function(response) {
console.log(JSON.stringify(response.data));
});
});
casper.run();
这至少需要CasperJS才能运行。基本上,我希望每个优惠券元素启动多个casper实例。当前解决方案将只启动1个casper实例,然后使用优惠券对象。据我所知,每个脚本只能有1个casper实例。我尝试使用中提到的代码启动多个CasperJS实例问题。它正在创建多个实例,但存在我提到的问题。