我在main.js
中的全局配置:
http.configure(config => {
config
.withInterceptor({
response(response) {
if (response.status === 500) {
toastr.error('Contact the tech guys.', 'Something has gone wrong!');
throw response;
}
return response;
}
})
.useStandardConfiguration()
.withBaseUrl('api/blah/blah');
在我的视图模型中,使用http.fetch()
后我也有更多处理。这适用于使用我的验证器在字段上连接错误消息等等。
this.http.fetch('some/route',
{
method: 'put',
body: json({some: 'data'})
})
.then(response => response.json())
.then(data => {
this.otherService.doSomeStuff(data);
})
.catch((response) => {
if(response.status !== 500)
response.json()
.then(failures => {
this.validator.handle(failures);
});
});
但是,我真的不想在我的拦截器中throw response;
(我现在正在这样做,因为null
被传递了),而且,我不想做response.status !== 500
1}}签入每个视图模型。
有没有办法用拦截器完全阻止链?