0
我想先在服務上運行函數getCompletedExams,並將所有數據返回給enrolled_exams數組,但是發生了什麼是首先將空值設置到了註冊的數據文件中,然後運行getCompletedExams。我知道Angular是異步的,所以這可能發生,但我不知道如何解決它。代碼在這裏附上。如何確保函數在數據通過angular2之前執行?
private setMyEnrolledExams() {
this.homeTabService.getCompletedExams(this.studentId).subscribe(result => {
console.log(result);
this.enrolled_exams = result["response"];
console.log("this "+this.enrolled_exams);
this.setPage(1);
});}
我想是這樣的:
private setEnrolledExams()
{
this.homeTabService.getCompletedExams(this.studentId).subscribe(result => {
console.log(result);
this.enrolled_array = result["response"];
console.log("this "+this.enrolled_exams);
this.setPage(1);
});
}
private setMyEnrolledExams() {
this.enrolled_exams = this.enrolled_array;
}
但它仍然做着同樣的事情在函數執行第一和打印空值,然後將數組加載與真實值。
有你,如果你的檢查結果'[ '響應']''返回null'?由於'this.enrolled_exams'是一個數組,爲什麼要用'console.log(「this」+ this.enrolled_exams)''中的字符串連接它呢? – Abrar
它正在返回一個我想要的對象數組和我爲了調試目的而添加的「this」。 – kingforever
如果'result ['response']'返回一個對象數組,那麼應該沒有問題,因爲您將它分配給'this.enrolled_exams'。 – Abrar