1

私は以下のようなコードを持っています

var casper = require('casper').create();
casper.on('remote.message', function (msg) {
    this.echo(msg);
});



casper.start( << some url >> , function () {
    this.echo(this.getTitle());


});
var resultObj = [];
casper.thenClick("#AddToCart").then(function () {
    // scrape something else

    casper.options.waitTimeout = 100000;

    var objectOne = this.evaluate(someFunction, << variables >> );
    //above function returns object
    casper.each(objectOne, function (self, obj) {



        var anotherObject = this.evaluate(anotherFunction, << variables >> );

        self.waitFor(function check() {

            var result = this.evaluate(thirdFunction, obj);
            if (result != 'no') {
                resultObj.push(result);


            }

            //  result = 'yes';
            return result != 'no';
            this.evaluate(function () {});
        }, function then() {


            console.log('done')


        });


    });
});

casper.run(function () {
    this.exit();
});

ループ (.each) とそれに続く wait for が含まれています。私が直面している問題は、ループが完全に実行されてから、waitFor が実行されることです。それらを同期させるにはどうすればよいですか?

4

1 に答える 1