Angular 2在应用程序启动时调用服务



我有一个提供程序,我想使用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并调用一个返回PromiseObservable的方法

function notificationInitializer() : () => Promise<any> {
return () => Promise.resolve(null);
}
providers: [
SendNotification,
{ provide: APP_INITIALIZER, useFactory: notificationInitializer, 
deps:[Http, SendNotification],
multi: true}]
})

相关内容

  • 没有找到相关文章

最新更新