我尝试在我的角度项目中加入APP_INITIALIZER来发出http请求以获取显示的用户权限列表。然而,函数内部的http请求其调用似乎没有被触发。
providers: [
PermissionService,
{ provide: APP_INITIALIZER, useFactory: (permissionServiceFactory: PermissionService) => () => permissionServiceFactory.getPermissions(), deps: [PermissionService], multi: true },
],
getPermissions() {
return this.http.get(this.url).pipe(
map(this.extractPermissions),
catchError(this.handleError)
)
}
我可以看到调用getPermissions并且我已经尝试将它放在setTimeout中,但似乎没有任何工作。这是APP_INITIALIZER的问题吗?看起来很简单,我不知道自己会做错什么。
答案 0 :(得分:0)
getPermissions()需要返回一个承诺
getPermissions(): Promise<any> {
const temp = return this.http.get(this.url).pipe(
map(this.extractPermissions),
catchError(this.handleError)
);
return temp;
}