You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular服务调用报错:Cannot read properties of undefined (reading 'getInit')

Angular APP_INITIALIZER 报错:Cannot read properties of undefined (reading 'getInit')

问题原因

报错核心是APP_INITIALIZER的工厂函数未正确传递依赖的AppInitService实例。当前app.module.ts中useFactory: () => initializeApp的写法,仅返回了initializeApp函数本身,但没有将Angular注入的AppInitService实例传递给该函数,导致initializeApp执行时参数appInitService为undefined,进而无法调用getInit方法。

解决方案

修改app.module.ts中的APP_INITIALIZER配置,确保依赖实例能传递到初始化函数:

providers: [
    AppInitService,
    {
      provide: APP_INITIALIZER,
      // 调整工厂函数,将注入的AppInitService传递给initializeApp
      useFactory: (appInitService: AppInitService) => () => initializeApp(appInitService),
      deps: [AppInitService],
      multi: true
     }
]

可选优化

可以简化initializeApp函数的写法(因为getInit本身已返回Promise):

export function initializeApp(appInitService: AppInitService): Promise<any> {
  return appInitService.getInit().catch(err => {
    console.log(err);
    return Promise.reject(err);
  });
}

内容的提问来源于stack exchange,提问作者Rijo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 16:15:16