使用subscribe进行TypeScript数组初始化

时间:2018-05-15 14:23:58

标签: arrays angular typescript

我正在尝试从此TypeScript函数返回一个数组(在Angular中编写)。

我尝试了很多不同的方法。我已经尝试在类中使用一个公共变量来初始化课程(比如变量被称为公共fallCourses:xCourse [],并且在下面的函数中它有this.fallCourses = courses),我尝试输入return在下面的函数调用之前的'课程'之前等等。操作非常简单,只是无法让它工作。

getFallCourses(){

    let fallCourses : xCourse[];
    this.dataService.getFallCourses().subscribe((courses: xCourse[]) => {
            fallCourses = courses;
    });  
    return fallCourses;   

}

1 个答案:

答案 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本身,只需通过从调用者订阅它。