私はnode.jsアプリに取り組んでおり、app.jsからjavascriptコードを実行しています。関数は正しく実行され、すべてのカービンは関数を介して渡されますが、コールバックは返されません。
スクリプトが実行され、console.log ですべてが正常に出力されますが、エラーで関数を実行すると、コールバックが呼び出されません。
ReferenceError: Can't find variable: callback
これがコードです。
var username;
var password;
function getBalance(username,password,callback) {
console.log("info that main.js received: ",username,password);
try {
var Spooky = require('spooky');
} catch (e) {
var Spooky = require('../lib/spooky');
}
var spooky = new Spooky({
child: {
transport: 'http',
"ssl-protocol": "any"
},
casper: {
logLevel: 'debug',
verbose: true
}
}, function(err) {
if (err) {
e = new Error('Failed to initialize SpookyJS');
e.details = err;
throw e;
}
spooky.start('https://bank.simple.com/signin');
spooky.then([{
auth: username+"_"+password
}, function () {
this.evaluate(function (auth) {
var info = auth.split("_");
username = info[0];
password = info[1];
document.getElementById("login_username").value = username;
document.getElementById("login_password").value = password;
}, {
auth:auth
});
}]);
spooky.thenClick('#signin-btn', function() {
this.emit('notifForTitleChange', 'Hello, from ' + this.evaluate(function() {
return document.title;
}));
});
spooky.thenOpen('https://bank.simple.com/account/balances');
spooky.then([{
},function() {
var pre = document.getElementsByTagName("pre")[0];
callback(pre.innerHTML);
}]);
spooky.run();
});
spooky.on('error', function(e, stack) {
console.error(e);
if (stack) {
console.log(stack);
}
});
spooky.on('console', function(line) {
console.log(line);
});
spooky.on('valueChanged', function(greeting) {
console.log(greeting);
});
spooky.on('gotInfo', function(balance) {
console.log(balance);
//Note: this callback isn't getting called :
callback(balance);
});
spooky.on('log', function(log) {
if (log.space === 'remote') {
console.log(log.message.replace(/ \- .*/, ''));
}
});
};
module.exports.getBalance = getBalance;