我尝试在函数内部使用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();
获取“未定义”。
最佳答案
我不认为这就是异步的工作方式,
返回值是立即发生的,而不是在回调返回时发生
解决问题的一个简单方法(但越来越复杂的方法)可能是将所有逻辑移至最后一个回调..
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!
});
}
});
}
关于javascript - 如何在函数返回中使用PhantomJS的webpage.open回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18560136/