gpt4 book ai didi

node.js - Node 幻影多实例不呈现正确的页面

转载 作者:搜寻专家 更新时间:2023-10-31 23:50:31 26 4
gpt4 key购买 nike

我正在使用 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);

使用此代码,它既可以是 google 也可以是 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

我怎样才能有不同的 phantom 实例,这样它们才能正确执行

最佳答案

我认为您应该使 phInstancepageInstance 成为局部变量。像这样:

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

关于node.js - Node 幻影多实例不呈现正确的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52049840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com