← 前端阅读目录

chunks/uBIymjUX.mjs

伪代码
源文件超过50行,已替换为不超过50行的伪代码。辅助函数为逻辑抽象,不直接执行。
1const preloadedUrls = new Set();23async function preloadAndImport(importModule, dependencies) {4  const cssTasks = [];5  const nonce = readPageNonce();67  for (const url of dependencies) {8    if (preloadedUrls.has(url) || hasResourceLink(url)) continue;9    preloadedUrls.add(url);1011    const isCss = url.endsWith(".css");12    const link = createLink({13      href: url,14      rel: isCss ? "stylesheet" : "modulepreload",15      nonce16    });17    if (isCss) cssTasks.push(waitForLoad(link));18    document.head.append(link);19  }2021  // CSS完成后导入组件;JS预载链接不单独等待load。22  for (const result of await Promise.allSettled(cssTasks)) {23    if (result.status === "rejected") {24      dispatchPreloadError(result.reason);25    }26  }27  try {28    return await importModule();29  } catch (error) {30    dispatchPreloadError(error);31  }32}
已确认说明