Angular 角度2 http捕获可观察问题
我有一个自定义http服务,它覆盖默认的angular 2 http服务。此服务设置自定义默认选项,并在请求启动时设置加载器,在请求完成时隐藏加载器 我还想添加一个功能,在服务器收到未经授权的错误(401403)时,将用户重定向到登录页面。下面的例子是我的http方法Angular 角度2 http捕获可观察问题,angular,angular2-services,angular2-http,Angular,Angular2 Services,Angular2 Http,我有一个自定义http服务,它覆盖默认的angular 2 http服务。此服务设置自定义默认选项,并在请求启动时设置加载器,在请求完成时隐藏加载器 我还想添加一个功能,在服务器收到未经授权的错误(401403)时,将用户重定向到登录页面。下面的例子是我的http方法 get(url: string, options?: RequestOptionsArgs): Observable<any> { this.setLoadingStatus(); op
get(url: string, options?: RequestOptionsArgs): Observable<any> {
this.setLoadingStatus();
options = this.prepareOptions(options);
let that = this;
return super.get(url, options)
.map(res => {
this.clearLoadingStatus();
return res.json();
})
.catch(function (err) {
//redirects user to login and display alert
that._gs.alertUnauthorized();
return Observable.empty();
});
}
有人可以指导吗?您需要导入
空功能:
import 'rxjs/add/observable/empty'
您需要导入empty
函数:
import 'rxjs/add/observable/empty'
尝试super.get().map((res)=>{},(err)=>{})代码>语法?尝试super.get().map((res)=>{},(err)=>{})代码>语法?谢谢,这很有帮助。还请注意,在这种情况下使用Observable.empty()是否合适,或者还有其他更好的选择吗?我仍然看到控制台中打印的下面的错误行“zone.js:1274 GET 401(Unauthorized)”,可以吗?或者这是一个需要处理的异常?我认为这只是一个调试问题。返回Observable.empty()会抑制错误,所以如果这是您想要的,那么您就是golden。当服务器返回401 unauthorized时,我想重定向到登录页面。谢谢,这很有帮助。还请注意,在这种情况下使用Observable.empty()是否合适,或者还有其他更好的选择吗?我仍然看到控制台中打印的下面的错误行“zone.js:1274 GET 401(Unauthorized)”,可以吗?或者这是一个需要处理的异常?我认为这只是一个调试问题。返回Observable.empty()会抑制错误,所以如果这是您想要的,那么您就是golden。当服务器返回401 unauthorized时,我想重定向到登录页面。