我有一个提供程序,我想使用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}]
})
有什么需要帮忙的吗?
我认为您需要使用useFactory
并调用一个返回Promise
或Observable
的方法
function notificationInitializer() : () => Promise<any> {
return () => Promise.resolve(null);
}
providers: [
SendNotification,
{ provide: APP_INITIALIZER, useFactory: notificationInitializer,
deps:[Http, SendNotification],
multi: true}]
})