Javascript thenEvaluate()是否以与evaluate()相同的方式返回?

Javascript thenEvaluate()是否以与evaluate()相同的方式返回?,javascript,casperjs,Javascript,Casperjs,所以我知道我可以使用return从窗口将数据返回到casper casper.evaluate(function() { return 'foobar'; }, {}); 如何使用thenEvaluate()实现同样的效果?您不能从casper.thenEvaluate>返回任何内容。它将被忽略。您需要将其拆分为casper。然后使用casper.evaluate。请参阅类似的内容 casper.thenEvaluate是一个异步步进函数,与所有其他then*和wait*函数一样。不可

所以我知道我可以使用return从
窗口
将数据返回到casper

casper.evaluate(function() {
    return 'foobar';
}, {});

如何使用
thenEvaluate()
实现同样的效果?

您不能从
casper.thenEvaluate>返回任何内容。它将被忽略。您需要将其拆分为
casper。然后使用
casper.evaluate
。请参阅类似的内容

casper.thenEvaluate
是一个异步步进函数,与所有其他
then*
wait*
函数一样。不可能从异步函数返回有用的内容。您最可能想要的是:

var something;
casper.start(url).then(function(){
    something = this.evaluate(function(){
        return 'foobar';
    });
    this.click("someSelector");
}).then(function(){
    // do something with "something" on the new page
});
我想如果你以后不想用
什么东西
,你不会问的。所有步骤函数都返回初始的
casper
对象,这样脚本就可以像上面的例子那样用promise语法编写