将Node.JS变量传递给幻像节点' onUrlChanged'事件并将其退出

时间:2016-04-12 17:24:24

标签: node.js phantomjs

我需要对收到' onUrlChanged'的数据进行一些检查。幻象节点事件:

else (res.statusCode === 200) {
    var sitepage = null;
    var phInstance = null;
    var urlS = options.url;
      phantom.create()
      .then(function(instance) {
        phInstance = instance;
        return instance.createPage();
      })
      .then(function(page) {
        sitepage = page;
        page.property('onUrlChanged', function(requestData, networkRequest){
          console.log(urlS);
        });
        console.log('URL OPTS: ', urlS);
        return page.open(urlS);
      })
      .then(function(status) {
        console.log('STATUS: ', status);
        return sitepage.property('content');
      })
      .then(function(content) {
        setTimeout(function() {
          console.log(urlS);
          sitepage.close();
          phInstance.exit();
          cb(redirects);
        }, 16000);

      })
      .catch(function(error) {
        console.log(error);
        phInstance.exit();
      });
  }

我将urlS定义为未定义内部' onUrlChanged'并使用低于代码的值获取它。 是在phantom-node中使用Node变量还是将幻像节点的变量转发给Node的方法?

提前谢谢!

更新: 我通过传递var解决了这个问题。这是幻像官方文档中的错误。

        page.property('onUrlChanged', function(requestData, networkRequest, outVar, a) {

        console.log(outVar);

        }, outObj, outObj);

看一下它在回调后使用最后一个outObj var但在回调函数中使用第三个参数。

那么,如何通过更改返回var?我想用写入和读取文件来做到这一点。但它看起来像丑陋的选择。

0 个答案:

没有答案