我正在嘗試訪問在我嘗試呼叫該變數之前在函式中宣告的變數 existsResults 的值,但我得到一個未定義的值
public existResults: any;
ngOnInit(): void {
this._activatedRoute.params.subscribe(params => {
this.patientId = params['patient'];
const testId = params['test'];
this.getTestResults();
this.getProccessesByTest(testId);
});
}
getTestResults(id:any) {
this._testsService.getTestResults(this.token, id, this.patientId).subscribe(
response => {
this.results = response.data;
if (this.results.length == 0) {
this.existResults = false;
}else if(this.results.length > 0) {
this.existResults = true;
}
console.log(this.existResults); //output true
},
error => {
console.log(error);
}
);
}
getProccessesByTest() {
console.log(this.existResults); //output undefined
}
uj5u.com熱心網友回復:
嘗試這個..
ngOnInit(): void {
this._activatedRoute.params.subscribe(params => {
this.patientId = params['patient'];
const testId = params['test'];
this.getTestResults();
});
}
getTestResults(id: any) {
this._testsService.getTestResults(this.token, id,
this.patientId).subscribe(
response => {
this.results = response.data;
if (this.results.length == 0) {
this.existResults = false;
} else if (this.results.length > 0) {
this.existResults = true;
}
this.getProccessesByTest();
console.log(this.existResults); //output true
},
error => {
console.log(error);
}
);
}
uj5u.com熱心網友回復:
- 您將引數傳遞給錯誤的方法。
- 不要忘記您正在使用異步代碼。
嘗試這個:
public patientId: any;
public existResults: any;
ngOnInit(): void {
this._activatedRoute.params
.pipe(
tap(({patient}) => this.patientId = patient),
switchMap(({test}) => this.getTestResults(test))
)
.subscribe(_ => this.getProccessesByTest());
}
getTestResults(id:any): Observable<any> {
return this._testsService.getTestResults(this.token, id, this.patientId)
.pipe(
tap(response => {
this.results = response.data;
this.existResults = !(this.results.length == 0);
}),
tap(_ => console.log(this.existResults)),
catchError(console.log)
);
}
uj5u.com熱心網友回復:
呼叫你的 getProccessesByTest() 到你的函式 getTestResults 你的代碼應該是這樣的......
getTestResults(id:any) {
this._testsService.getTestResults(this.token, id, this.patientId).subscribe(
response => {
this.results = response.data;
if (this.results.length == 0) {
this.existResults = false;
}else if(this.results.length > 0) {
this.existResults = true;
}
console.log(this.existResults); //output true
this.getProccessesByTest(testId);
},
error => {
console.log(error);
}
);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/485604.html
