[英]How to use PhantomJS's webpage.open callback in function return?
我正在嘗試在函數內使用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!
});
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.