【问题标题】:Angular2 APP Init[i] error when ng serve is used使用ng serve时Angular2 APP Init [i]错误
【发布时间】:2017-02-08 13:11:53
【问题描述】:
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 cli 和 Angular 2 从 2.1.0 升级到 2.4.6 之前,它一直在运行。还有我们从beta 18升级到28的cli版本。

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

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

【问题讨论】:

标签: angular


【解决方案1】:

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

就我而言,我翻译错误:

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

到

useFactory: noop,
export function noop() {}

并解决它改变它:

export function noop(){}

到

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-28
    • 2019-06-23
    • 2019-12-19
    • 2017-06-26
    • 2019-08-25
    • 2011-01-26
    • 1970-01-01
    • 2019-11-19
    相关资源
    最近更新 更多