节点幻像多实例无法呈现正确的页面

  • 本文关键字:实例 节点 node.js phantomjs
  • 更新时间 :
  • 英文 :


我正在使用 phantom 来保存多个事务的 pdf,但有一天我注意到一些奇怪的事情,假设有两个页面 A 和 B,然后我想将其捕获为 pdf,但是当创建 A.pdf 和 B.pdf 时,它们都显示页面 B。只有当我同时打电话给他们时才会发生。

示例代码 :

function testPhantom(i)
{
var phantom = require('phantom');
phantom.create()
.then(function(ph){phInstance = ph; return ph.createPage();})
.then(function(page){
page.property('viewportSize', {width: "210mm", height: "297mm"});  
page.property('paperSize', {format: 'A4', orientation: 'portrait', margin: '1cm'});
pageInstance = page;
if (i == 1)
{
return page.open('http://www.google.com/');
}
else if (i == 2)
{
return page.open('https://www.facebook.com/');
}
})
.then(function(status){
console.log(status);
return pageInstance.render('test'+i+'.pdf');
})
.then(function(){
// phInstance.exit();
})
.catch(function(error){
console.log(error);
// phInstance.exit();
});
}
testPhantom(1);
testPhantom(2);

使用此代码,它将既谷歌又将同时使用Facebook。

如果我在函数上调用 exit,警告将显示为

warn: exit() was called before waiting for commands to finish. Make sure you are not calling exit() prematurely

或错误为

Error: Error reading from stdin: Error: This socket has been ended by the other party

我怎样才能有不同的幻影实例,以便他们做对

我认为你应该phInstancepageInstance一个局部变量。喜欢这个:

var phInstance;
var pageInstance;
var phantom = require('phantom');
etc.

相关内容

  • 没有找到相关文章

最新更新