答案 0 :(得分:0)
伪造者超时的默认时间是30秒,因此您可以尝试使用for (var x = 0; x < layers.length; x++) {
var layerindex = layers[x];
doc.activeLayer = doc.artLayers[x];
var ref = new ActionReference();
ref.putEnumerated( charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
var desc = executeActionGet(ref);
if(desc.hasKey(charIDToTypeID('GrpL'))){
alert("this is Clipping Mask Layer");
}
}
和page.setDefaultNavigationTimeout(0)
禁用超时
请参阅:https://github.com/GoogleChrome/puppeteer/issues/1514
和:https://github.com/GoogleChrome/puppeteer/issues/2079
答案 1 :(得分:0)
您的代码中可能会抛出超时错误。您有两种选择:
选项1:听引发的错误
由于您没有列出taskerror
事件,因此在此过程中抛出的任何错误都将不会得到处理。
cluster.on('taskerror', (err, data) => {
// handle error
});
选项2:增加超时值
如果您的任务花费很长时间,则可以增加timeout
值:
const cluster = await Cluster.launch({
// ...
timeout: 120000 // 2 minutes
});
通常,您不应该在cluster.queue
函数内部创建无限循环。队列将为您处理确切的任务。您将作业排队,然后cluster.task
函数会处理它们。无需为任务创建无限循环。