APP_INITIALIZER,在bootstrap期间解析数据

时间:2017-08-15 19:21:00

标签: angular

我有一个Angular 4.3应用程序,我试图实现的目标是在从引导程序显示页面上的任何内容之前解析一些数据,并且如果有一个erorr重定向到其他地方,在应用程序之外使用location.assign();

我尝试过APP_INITIALIZERS,但它没有检测到错误信息。

我的代码:

    pvqFlowInit(): any {
    console.log('4176-21 Calling PVQ FLOW SERVICE!');
    // getData{{ deadLinePassed = true || false, flow = "CREATE || UPDATE", previousScreen = "/RBCXpress || /previousScreen" }}
    let response: PvqResponse = pvqStepUpResponseMerged;

    return this._http
        .get('Faked a URL for Error')
        .toPromise()
        .catch(this.handleError);
}

handleError(error: any) {
    console.log('ERROR OCCURED!');
    location.assign('https://www.google.com');
    console.log('REDIRECT!');
    return error;
}

我的AppModule:

providers: [
PVQ_SERVICES,
{ provide: HTTP_INTERCEPTORS, useClass: HeadersInterceptor, multi: true },
{
  // Provider for APP_INITIALIZER
  provide: APP_INITIALIZER,
  useFactory: bootstrapPvqService,
  deps: [PVQStepUpService],
  multi: true
},
pvqGuards
]

export function bootstrapPvqService(pvqStepUpService: PVQStepUpService): 
   Function {
    console.log('Calling SERVICE!!');
    return () => pvqStepUpService.pvqFlowInit();
}

对于我想要实现的目标,在main.ts中的引导期间进行调用然后传递任何已解析的数据等会更好吗?或者这可以使用APP_INITIALIZERS来实现吗?

0 个答案:

没有答案