我需要对收到' 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?我想用写入和读取文件来做到这一点。但它看起来像丑陋的选择。