我正在尝试从此TypeScript函数返回一个数组(在Angular中编写)。
我尝试了很多不同的方法。我已经尝试在类中使用一个公共变量来初始化课程(比如变量被称为公共fallCourses:xCourse [],并且在下面的函数中它有this.fallCourses = courses),我尝试输入return在下面的函数调用之前的'课程'之前等等。操作非常简单,只是无法让它工作。
getFallCourses(){
let fallCourses : xCourse[];
this.dataService.getFallCourses().subscribe((courses: xCourse[]) => {
fallCourses = courses;
});
return fallCourses;
}
答案 0 :(得分:0)
在返回函数后,observable正在完成,因此它只是替换了本地作用域fallCourses
。如果您需要它,那么您应该返回一个数组,在订阅中已填充。这是一个片段:
getFallCourses(){
let fallCourses: xCourse[] = [];
this.dataService.getFallCourses().subscribe((courses: xCourse[]) => {
fallCourses.push(...courses); // will change the fallCourses itself
});
return fallCourses;
}
但是最好使用observable本身,只需通过从调用者订阅它。