簡體   English   中英

如何在函數返回中使用PhantomJS的webpage.open回調?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM