reactjs 如何获取多个url的url文件大小?

von4xj4u  于 2023-02-08  发布在  React
关注(0)|答案(1)|浏览(336)

我使用npm url-file-size通过Nodejs获取文件大小,我想获取数组url的文件大小,例如:

let arrayUrls = [
     'https://cdn.shopify.com/s/files/1/0597/0149/3909/files/image_6b47157f-0e00-442f-b5ba-a06588ea25eb.png?v=1675671630',
     ...
     'https://cdn.shopify.com/s/files/1/0597/0149/3909/files/kata-rocks-factsheet.pdf?v=1671613390'
     ]

这是我的函数检查大小:

await ufs(url).then(result => {
                console.log('result', result);
            }).catch(console.error);

因为arrayUrls可能会比较大,函数ufs就是async/await,太耗时了,如何改进这个问题,在发送数据到Backend(NodeJs)检查之前,如何在FE(Reactjs)中通过url得到文件大小?
太感谢你了。

yqhsw0fo

yqhsw0fo1#

其中一种方法是同时发送所有承诺的请求。为了做到这一点,你可以使用Promise.all。因此,你需要做的是创建一个promises数组,并将其用作arg。如下所示:

const getAllUrlsSize = arrayUrls.map((url) => {
return ({
fileUrl: url, 
fileSize: fs(url)
})
);
Promise.all(getAllUrlsSize).then((values) => {
console.log(values);
});

当你这样做的时候,你基本上会同时为每个网址发送一个请求。我希望这对你有帮助。

相关问题