gpt4 book ai didi

javascript - 尝试确定是否已加载所有图像时 Node.js 挂起

转载 作者:行者123 更新时间:2023-11-30 20:04:13 24 4
gpt4 key购买 nike

我正在使用 Puppeteer 编写一个脚本,其中我需要确定所有图像是否已完成加载,即使它们加载失败,这是有问题的部分:

var images = await page.evaluate(function() {

return new Promise(
function(resolve, reject) {
var imgs = document.images,
imagesNumber = imgs.length,
counter = 0;

if (imagesNumber == 0)
{
resolve({images: []});
}

for (var i = 0; i < imgs.length; i++)
{
imgs[i].addEventListener( 'load', incrementCounter, false );
imgs[i].addEventListener( 'error', incrementCounter, false );
}

function incrementCounter() {
counter++;

if ( counter === imagesNumber ) {
resolve({images: imgs});
}
}
}
)
});

我不确定我做错了什么,但 nodejs 只是卡在这段代码上。任何想法表示赞赏。

最佳答案

问题可能是当您运行 page.evaluate 时,一些图像已经加载。

要检查图像是否已经加载,可以使用属性complete:

            for (var i = 0; i < imgs.length; i++)
{
if (imgs[i].complete) {
counter += 1;
}
imgs[i].addEventListener( 'load', incrementCounter, false );
imgs[i].addEventListener( 'error', incrementCounter, false );
}

关于javascript - 尝试确定是否已加载所有图像时 Node.js 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53085948/

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