如何在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实例问题。它正在创建多个实例,但存在我提到的问题。