Angular 再次单击并刷新数据后发送http请求
我正在通过RESTAPI检索数据,在第一次请求之后,即使我正在订阅,也无法刷新数据。RESTAPI在每次请求后向我提供一个随机数据,目前我只能发送一个请求。我做错了什么 imageContent.component.hmtlAngular 再次单击并刷新数据后发送http请求,angular,Angular,我正在通过RESTAPI检索数据,在第一次请求之后,即使我正在订阅,也无法刷新数据。RESTAPI在每次请求后向我提供一个随机数据,目前我只能发送一个请求。我做错了什么 imageContent.component.hmtl <div *ngFor="let x of data;">{{x}}</div> {{x} imageContent.component.ts this.apiService.callDataForReview() .subscribe(r
<div *ngFor="let x of data;">{{x}}</div>
{{x}
imageContent.component.ts
this.apiService.callDataForReview()
.subscribe(result => {this.data=result, console.log(result)},
error => this.handleError = <any>error);
}
callDataForReview(): Observable<any> {
this.isLoading = true;
let url = '/rest/v4/jobs/' + this.keyID;
let headers = new Headers({'Content-Type': 'application/json'});
return this.http
.post(url, JSON.stringify(this.jsonData), {headers:headers})
.map((res) => {
if (res) {
if (res.status === 201) {
this.isLoading = false;
console.log(res.json().outputValues['json-output-14'])
return [res.json().outputValues['json-output-14']];
}
else if (res.status === 200) {
this.isLoading = false;
console.log(res.json().outputValues['json-output-14'])
return [res.json().outputValues['json-output-14']];
}else{
alert('Etwas ist schief gelaufen. Probiere es noch einmal!')
}
}
}).catch((error: any) => {
if (error.status === 500) {
return Observable.throw(new Error(error.status));
}
else if (error.status === 400) {
return Observable.throw(new Error(error.status));
}
else if (error.status === 409) {
return Observable.throw(new Error(error.status));
}
else if (error.status === 406) {
return Observable.throw(new Error(error.status));
}
});
}
this.apiService.callDataForReview()
.subscribe(result=>{this.data=result,console.log(result)},
error=>this.handleError=error);
}
apiService.ts
this.apiService.callDataForReview()
.subscribe(result => {this.data=result, console.log(result)},
error => this.handleError = <any>error);
}
callDataForReview(): Observable<any> {
this.isLoading = true;
let url = '/rest/v4/jobs/' + this.keyID;
let headers = new Headers({'Content-Type': 'application/json'});
return this.http
.post(url, JSON.stringify(this.jsonData), {headers:headers})
.map((res) => {
if (res) {
if (res.status === 201) {
this.isLoading = false;
console.log(res.json().outputValues['json-output-14'])
return [res.json().outputValues['json-output-14']];
}
else if (res.status === 200) {
this.isLoading = false;
console.log(res.json().outputValues['json-output-14'])
return [res.json().outputValues['json-output-14']];
}else{
alert('Etwas ist schief gelaufen. Probiere es noch einmal!')
}
}
}).catch((error: any) => {
if (error.status === 500) {
return Observable.throw(new Error(error.status));
}
else if (error.status === 400) {
return Observable.throw(new Error(error.status));
}
else if (error.status === 409) {
return Observable.throw(new Error(error.status));
}
else if (error.status === 406) {
return Observable.throw(new Error(error.status));
}
});
}
callDataForReview():可观察{
this.isLoading=true;
让url='/rest/v4/jobs/'+this.keyID;
let headers=新的头({'Content-Type':'application/json'});
返回此文件。http
.post(url,JSON.stringify(this.jsonData),{headers:headers})
.map((res)=>{
如果(res){
if(res.status==201){
this.isLoading=false;
log(res.json().outputValues['json-output-14'])
返回[res.json().outputValues['json-output-14']];
}
否则如果(res.status==200){
this.isLoading=false;
log(res.json().outputValues['json-output-14'])
返回[res.json().outputValues['json-output-14']];
}否则{
警报('Etwas is schief gelaufen.Probiere es noch einmal!')
}
}
}).catch((错误:任意)=>{
如果(error.status==500){
返回Observable.throw(新错误(Error.status));
}
else if(error.status==400){
返回Observable.throw(新错误(Error.status));
}
else if(error.status==409){
返回Observable.throw(新错误(Error.status));
}
else if(error.status==406){
返回Observable.throw(新错误(Error.status));
}
});
}
因此,当您在map的第一次回调中执行控制台.log时,会得到意外数据,即res
?我想你必须归还一些东西。您没有在else块中返回任何内容。因此,当您在map的第一次回调中执行控制台.log
,即res
,您会得到意外数据?我想你必须归还一些东西。你不会在你的else区返回任何东西。