2016-07-11 13 views
1

Ich verwende this.evaluate auf diese Weise:this.evaluate mit Funktionsparameter für eine große wiederverwendbare Funktion

myData = this.evaluate(getData); 

Ich brauche zwei Variablen in der getData Funktion zu übergeben, aber leider, die nicht wie funktioniert dies:

myData = this.evaluate(getData(varA,varB)); 

ich will nicht die Funktion so nennen, wie getData eine große Funktion ist, und ich brauche diese Funktion öfter im Skript zu bewerten:

myData = this.evaluate(function getData(varA,varB) { 
// my code... 
}); 

Was kann ich stattdessen tun, um die Parameter zu übergeben und trotzdem die Funktion in anderen Teilen des Skripts aufrufen zu können?

Antwort

1

Sie können, dass auf diese Weise erreichen:

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(); 

Ausgang:

result1: 8 
result2: Hello, World. 
+0

In Ordnung, dann ist das ist die Syntax. Vielen Dank! –

+0

@JoshiiStarlet Wenn es keine weitere Frage gibt, bitte denken Sie daran, meine Antwort zu akzeptieren ... – Sayakiss