当前位置: 首页 > news >正文

广西营销型网站建设公司南宁好的网站建设公司

广西营销型网站建设公司,南宁好的网站建设公司,wordpress主题带采集,品牌建设经验交流材料在使用 module-federation 中的 loadRemoteModule 时,如果模块加载失败(比如远程应用不可访问、模块不存在、网络问题等),通常会遇到类似 Uncaught (in promise) 的错误。这类错误是 异步的 Promise 错误,因此需要用 t…

        在使用 module-federation 中的 loadRemoteModule 时,如果模块加载失败(比如远程应用不可访问、模块不存在、网络问题等),通常会遇到类似 Uncaught (in promise) 的错误。这类错误是 异步的 Promise 错误,因此需要用 try...catch.catch() 来捕捉。

✅ 错误捕捉方式(推荐使用 try...catch

如果使用的是 async/await 方式来调用 loadRemoteModule,可以进行下面的处理:

import { loadRemoteModule } from '@angular-architects/module-federation';async function loadRemote() {try {const module = await loadRemoteModule({type: 'module',remoteEntry: 'http://localhost:3000/remoteEntry.js',exposedModule: './Module'});// 你可以在这里使用 module 了} catch (error) {console.error('远程模块加载失败:', error);// 你也可以在这里处理 UI 提示、fallback 显示等逻辑}
}

✅ 如果使用的是 .then().catch() 方式:

loadRemoteModule({type: 'module',remoteEntry: 'http://localhost:3000/remoteEntry.js',exposedModule: './Module'
}).then((module) => {// 成功加载
}).catch((error) => {console.error('远程模块加载失败:', error);
});

    如何捕捉到 remoteEntry.js 404报错

    remoteEntry.js 加载失败(比如 404),这个错误无法被 loadRemoteModule().catch()try...catch 捕捉到

    这是因为:

    ❗ 404 错误发生在 <script> 标签动态加载时,而不是在 JS Promise 中

      module-federation(或 Angular Architects 的 loadRemoteModule)在内部使用了动态创建 <script src="..."> 的方式加载远程模块,而 <script> 加载失败并不会自动 reject 一个 promise,默认它会触发 onerror,但这不是 Promise 的异常

    ✅ 正确做法:提前检查 remoteEntry 是否可访问(推荐做法)

            可以 在调用 loadRemoteModule 之前,先用 fetch 检查 remoteEntry.js 是否存在

    async function safeLoadRemoteModule() {const remoteEntryUrl = 'http://localhost:3000/remoteEntry.js';try {// 提前检查 remoteEntry.js 是否可以访问const res = await fetch(remoteEntryUrl, { method: 'HEAD' });if (!res.ok) throw new Error(`Remote entry not found: ${remoteEntryUrl}`);// 如果检查通过,再加载模块const module = await loadRemoteModule({type: 'module',remoteEntry: remoteEntryUrl,exposedModule: './Module'});return module;} catch (err) {console.error('模块加载失败:', err);// fallback 处理}
    }
    ✅ 另一种高级方案:监听 script 加载错误(适用于动态远程加载)

            如果写了 remote 动态加载逻辑(不依赖封装库),可以这样监听:

    function loadRemoteEntry(remoteEntryUrl: string): Promise<void> {return new Promise((resolve, reject) => {const script = document.createElement('script');script.src = remoteEntryUrl;script.type = 'text/javascript';script.async = true;script.onerror = () => {reject(new Error(`加载远程入口失败: ${remoteEntryUrl}`));};script.onload = () => {resolve();};document.head.appendChild(script);});
    }
    🔁 总结
    问题为什么捕捉不到推荐解决方式
    remoteEntry.js 返回 404<script> 的加载错误fetch 预检测或手动监听 onerror
    loadRemoteModule 捕不到异常Promise 未触发 reject在外部做资源可达性检查

    🔍 常见错误及排查建议:

    1. remoteEntry.js 404
      • 检查 URL 是否正确。
      • 远程项目是否已经部署或启动。
    2. CORS 错误
      • 确保远程服务的响应头中设置了合适的 Access-Control-Allow-Origin
    3. exposedModule 写错
      • 检查模块暴露名是否和远程项目 webpack.config.js 中的 exposes 匹配。
    4. loadRemoteModule 返回 undefined
      • 可能是模块加载成功,但模块内部没有正确导出。
    http://www.yayakq.cn/news/470433/

    相关文章:

  1. 交互型网站重庆市建设工程信息网官网人
  2. 做视频点播网站需要服务器存储吗免费做那个的视频网站好
  3. 访客浏览网站 网站怎么跟踪怎么在百度建设网站
  4. 小辰青岛网站建设widget earth wordpress
  5. 网页源码在线提取网网站基础建设优化知识
  6. 导航网站好处装饰公司加盟费用
  7. 专业维护网站的公司discuz 门户网站模板
  8. 免费vip影视网站怎么做的.net手机网站源码下载
  9. 企业网站需要多少费用网站漂浮二维码
  10. 网站为什么要挂服务器wordpress网页图片编辑
  11. 高端的网站设计公司建个企业网站要多少钱
  12. 金融投资管理公司网站源码网站建设论文的摘要
  13. 优秀企业门户网站黄骅港出海捕鱼
  14. 那种类型的网站可以自己做也可以赚钱茂名专业网站建设公司
  15. 商城网站有哪些功能青岛设计网站公司
  16. 网站开发质保线上商城app
  17. 永州网站建设收费标准如何将wordpress搬家
  18. 个人主页静态网站网站接入支付宝需要网站备案吗
  19. 网站购物分享seo关于网站的建设论文
  20. 网站关键词格式电话销售网站建设多少钱一个月
  21. 教做鞋的网站南阳网站营销外包
  22. 太原富库网站建设有什么平台可以发广告
  23. 太原建设厅网站电子商务专业就业方向及就业前景
  24. 网站整体克隆包含后台超级简历免费模板
  25. 网站收录网网站建设运营的灵魂是什么
  26. 陕西住房和建设部网站首页网站建设是什么?
  27. 企业建站用什么主机WordPress谷歌广告插件
  28. 免费发外链的网站网站规划说明书范文
  29. 绿色建筑网站百度怎样免费发布信息
  30. php 茶叶网站网站产品展示系统