我有一个想要循环的对象。目前正在循环它如下:
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
);
}
问题是它在没有输入casper.then(function(){console.log('here')}
一旦执行了循环,它就会用最后一个值ie casper.then(function(){console.log(JSON.stringify(coupon);}
执行。 coupons[coupons.length]
答案 0 :(得分:1)
因为许多CasperJS的函数都是异步的,所以不将代码包装在Casper.then
中会导致它们无序运行。您可以使用以下内容解决此问题。
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 1.1-beta1才能运行。