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.4.6
升级为2.1.0
。我们还将cli版本从beta 18
升级到28
。
现在,当应用程序启动时,它在控制台中发出此错误,我确实看到该请求在loginUser方法中正常工作。但不知何故,它给出了关于http post请求中使用的承诺的错误
未处理的承诺拒绝:appInits [i]不是函数;区: ;任务:Promise.then;值:TypeError:appInits [i]不是 功能
答案 0 :(得分:1)
当使用的工厂函数返回未定义时,会发生此错误(至少在我的情况下)。
就我而言,我错误地翻译了:
useFactory: () => () => {}
到
useFactory: noop,
export function noop() {}
并解决它从以下方面改变:
export function noop(){}
到
export function noop() {
return () => {};
}
...而且工厂是一个空函数的原因是因为我有一些实体应该在DIC中可用而没有任何实体明确地注入它们