资源预加载
1、通过函数实现
export async function preloadFiles(files, maxConcurrent = 3) {
if (!files || !Array.isArray(files) || files.length === 0) {
throw new Error('必须提供有效的文件数组');
}
if (typeof maxConcurrent !== 'number' || maxConcurrent < 1) {
throw new Error('maxConcurrent 必须是大于 0 的数字');
}
const uniqueFiles = [...new Set(files)].filter(file => {
try {
new URL(file);
return true;
} catch {
console.warn(`无效的 URL: ${
file}`);
return false;
}
});
if (uniqueFiles.length === 0) {
return {
loaded: [], failed: [] };
}
const results = {
loaded: [],
failed: []
};
let currentIndex = 0;
const