【发布时间】:2019-02-09 16:38:43
【问题描述】:
在 driver.ts 文件中,我进行 http 调用,像这样
this.http.get(GetDrivers + '?service_identifier=' + 'road_logistic' + '&page=' + '1').subscribe((response:any) => {
console.log("gio");
}, err =>{
console.log(err);
});
我也有所有 http 调用的拦截器。在这里。
return observablePromise.pipe(mergeMap(user_tokens => {
let access_token = user_tokens ? user_tokens.access_token : null;
let clonedReq = this.addToken(request, access_token);
return next.handle(clonedReq).pipe(
tap(
evt =>{
if (evt instanceof HttpResponse) {
console.log("nice");
this.loaderService.storeLoaderOff();
}
},
error =>{
throwError("my error");
}
)})
所以问题是,我手动调用驱动程序 http 是一个错误。它涉及拦截器中的tap错误处理程序,(我知道,因为console.log出现了),但是 throwError 不起作用。它应该做的是“我的错误”必须被抛出给调用者(driver.ts http调用)。正如您在驱动程序 http 调用中看到的那样,我捕获错误并在控制台记录它们。我该怎么办?
【问题讨论】:
标签: angular rxjs reactive-programming ngrx