使用ng服务时出现Angular2 APP Init [i]错误

时间:2017-02-08 13:11:54

标签: angular

NG-CLi - 1.0.0-beta.28.3
Angular2 : 2.4.6

这是我在app.module.ts中的功能

 export function authFactory(auth : LoginService){
  return auth.loginUser();
}

提供商就是这样的参考

{
  provide: APP_INITIALIZER,
  //useFactory: (auth: AuthService) => () => auth.authUser(),
  useFactory : authFactory,
  deps: [LoginService],
  multi: true
}

这一直在运行,直到我们从angular cliAngular 22.4.6升级为2.1.0。我们还将cli版本从beta 18升级到28

现在,当应用程序启动时,它在控制台中发出此错误,我确实看到该请求在loginUser方法中正常工作。但不知何故,它给出了关于http post请求中使用的承诺的错误

  

未处理的承诺拒绝:appInits [i]不是函数;区:    ;任务:Promise.then;值:TypeError:appInits [i]不是   功能

1 个答案:

答案 0 :(得分:1)

当使用的工厂函数返回未定义时,会发生此错误(至少在我的情况下)。

就我而言,我错误地翻译了:

useFactory: () => () => {}

useFactory: noop,
export function noop() {}

并解决它从以下方面改变:

export function noop(){}

export function noop() {
   return () => {};
}

...而且工厂是一个空函数的原因是因为我有一些实体应该在DIC中可用而没有任何实体明确地注入它们