this.evaluate 具有大型可重用函数的函数参数
this.evaluate with function parameters for a large reusable function
我这样使用 this.evaluate:
myData = this.evaluate(getData);
我需要将两个变量传递给 getData 函数,但不幸的是,它不能像这样工作:
myData = this.evaluate(getData(varA,varB));
我不想这样调用函数,因为 getData 是一个大函数,我需要在脚本中更频繁地计算这个函数:
myData = this.evaluate(function getData(varA,varB) {
// my code...
});
那么我该怎么做才能传递参数并仍然能够在脚本的其他部分调用该函数?
您可以通过这种方式实现:
var casper = require('casper').create();
function add(a, b) {
return a + b;
}
var result1, result2;
casper.start().then(function () {
result1 = casper.evaluate(add, 3, 5);
result2 = casper.evaluate(add, "Hello", ", World.");
}).then(function () {
casper.echo('result1: ' + result1);
casper.echo('result2: ' + result2);
})
casper.run();
输出:
result1: 8
result2: Hello, World.
我这样使用 this.evaluate:
myData = this.evaluate(getData);
我需要将两个变量传递给 getData 函数,但不幸的是,它不能像这样工作:
myData = this.evaluate(getData(varA,varB));
我不想这样调用函数,因为 getData 是一个大函数,我需要在脚本中更频繁地计算这个函数:
myData = this.evaluate(function getData(varA,varB) {
// my code...
});
那么我该怎么做才能传递参数并仍然能够在脚本的其他部分调用该函数?
您可以通过这种方式实现:
var casper = require('casper').create();
function add(a, b) {
return a + b;
}
var result1, result2;
casper.start().then(function () {
result1 = casper.evaluate(add, 3, 5);
result2 = casper.evaluate(add, "Hello", ", World.");
}).then(function () {
casper.echo('result1: ' + result1);
casper.echo('result2: ' + result2);
})
casper.run();
输出:
result1: 8
result2: Hello, World.