我正在尝试在函数内部使用webpage.open方法的回调,但是获取未定义的值:
getPagesCount = function (url)
{
var page = require('webpage').create();
return page.open(url, function (status) {
if (status === 'success') {
return page.evaluate(function() {
return document.body.innerHTML;
});
}
});
}
html = getPagesCount('http://google.com');
console.log(html);
phantom.exit();
得到'未定义'。
答案 0 :(得分:2)
我不认为那是异步的方式,
当您的回调返回
时,返回值不会立即发生解决问题的一种简单方法(但越来越复杂的方法)可能是将所有逻辑移到最后一个回调中。
getPagesCount = function (url)
{
var page = require('webpage').create();
page.open(url, function (status) {
if (status === 'success') {
page.evaluate(function() {
var html = document.body.innerHTML;
// now you can do something with your html!
});
}
});
}