我有一个提供程序,我想使用APP_INITIALIZER在应用程序初始化时运行它,但不知何故我一直收到错误
未处理的Promise拒绝:appInits [i]不是函数;区域:;任务:Promise.then;值:TypeError:appInits [i]不是函数
这是我的提供者:
@Injectable()
export class SendNotification {
constructor(public http: Http) {
Observable.interval(30 * 60 * 1000)
.switchMap(res =>this.http.get(`http://localhost:8100/api/balance.pl?meternumber=0003080123&api=json`))
.map(res => res.json())
.subscribe(res => this.check(res))
}
private check(res) {
console.log("Check wether to notify a user")
}
在我的app.module.ts上,我打电话给提供者如下:
providers: [{provide: APP_INITIALIZER,useClass: SendNotification,deps:[Http],multi: true}]
})
任何帮助将不胜感激?
答案 0 :(得分:0)
我认为您需要使用useFactory
并调用返回Promise
或Observable
function notificationInitializer() : () => Promise<any> {
return () => Promise.resolve(null);
}
providers: [
SendNotification,
{ provide: APP_INITIALIZER, useFactory: notificationInitializer,
deps:[Http, SendNotification],
multi: true}]
})