Angular2:HTTP观测流量不明确
问题描述:
在我的组件我打电话REST服务,并要保存数据,其余的呼叫不成功(预期行为),所以我期待这个代码被执行:Angular2:HTTP观测流量不明确
ERR =>执行console.log(ERR)& & this.accessLevel == AccessLevel.DISBLED
export class CustomerComponent extends SuperChildComponent{
public static url:string='/orderViewCustomer/';
public id;
public allowed: boolean = false;
public accessLevel:AccessLevel =null;
public componentname:string;
public customerData:Customer=null;
constructor(private rest:REST,private authenticationService : AuthorizationService) {
super();
this.componentname=this.constructor.name;
this.accessLevel=this.authenticationService.isUserLoggedIn()?this.authenticationService.componentAccessLevel(this.constructor.name):null;
console.log(this.constructor.name +' has '+this.accessLevel);
if(this.accessLevel==AccessLevel.ENABLED){
this.getData();
}
}
private getData():any{
this.rest.get(CustomerComponent.url,this.id).subscribe(data=> this.storeData(data.json()), err => console.log(err) && this.accessLevel==AccessLevel.DISBLED);
}
private storeData(res:Object):any{
//TODO
//this.customerData =<Customer>res;
this.customerData=<Customer>this.dummy;
}
这是我的休息服务get方法:
get(resource: string, id: number, params: URLSearchParams = new URLSearchParams()) {
let headers = this.defaultHeaders;
headers.set("Authorization", this.authdata);
return this
.http
.get(this.getUrl(resource) + '/' + id, params);
// .map((r: Response) => r.json());
}
但是error block永远不会执行,storeData(dat.json())函数也不会执行。
只有在呼叫成功时,用户块才能执行吗?
有什么我在这里失踪?
感谢
答
subscribe(...)
支持3个回调
someObservable.subscribe(
data => this.onSuccessDoSomething(data),
err => this.onErrorDoSomethingElse(err),
() => this.afterObservableCompleted() // after the last onSuccess...
)
能否请你定义 '并不成功'?它是否返回一个错误代码或者根本不可能连接? – Sebastian