次の例では、categoryId
null
はなぜですか?CasperJS:evaluate()はヌル値を返します
var scripts = this.evaluate(function() {
var raScripts = "A lengthy script";
return raScripts;
});
var categoryId = this.evaluate(function() {
var text = 'more text';
var lengthyScript = scripts + ' ' + text;
return lengthyScript;
});
this.echo('Status: ' + categoryId);
// categoryId is null
変数'scripts'はページコンテキストの外側で定義されますが、内部で使用されます。 –
そして、 'this.evaluate'関数の外で' raScripts'バリエーションをどうやって使うことができますか? –
あなたは 'evaluate'コールバックからそれを返すことで既にそれを行いました。 'raScripts'の値は' scripts'の値と同じです(値が循環参照のないプリミティブなオブジェクトだった場合)。ページコンテキストの中の次の "計算"のために、単に 'script'の値をページコンテキストに戻す必要があります。 –