为什么此代码会导致使用幻像模块挂起的Node.js

时间:2013-11-21 10:34:48

标签: javascript node.js phantomjs

如果我改变了这个:

var phantom = require('phantom');
phantom.create(function(ph) {
    return ph.createPage(function(page) {
        return page.open("http://www.google.com", function(status) {
            console.log("opened google? ", status);
            return page.evaluate((function() {
                return document.title;
            }), function(result) {
                console.log('Page title is ' + result);
                return ph.exit();
            });
        });
    });
});

到此:

 var phantom = require('phantom');
    phantom.create(function(ph) {
        return ph.createPage(function(page) {
            return page.open("http://www.google.com", function(status) {
                console.log("opened google? ", status);
                return page.get('title',(function(title) {
                    return title;
                }), function(result) {
                    console.log('Page title is ' + result);
                    return ph.exit();
                });
            });
        });
    });

打印后,节点在控制台挂起并打开谷歌?成功'并且没有进一步的产出。

我正在尝试使用page.get()而不是page.evaluate,如幻像模块docs中所述:

  

无法直接获取/设置属性,而是使用p.get(' version',   回调)

1 个答案:

答案 0 :(得分:2)

您滥用page.get()。这个方法只有两个参数,而不是三个。

以下是如何:

page.get('title', function(title) {
  console.log('Page title is ' + title);
  return ph.exit();
});