将Observable的一部分提取为新的Observable



我有以下接口

export interface Student {
id: number;
firstname: string;
lastname: string;
birthdate?: Date;
created_at: Date;
updated_at: Date;
contacts: Contact[];
contacts_attributes: Contact[];
}
export interface StudentsData {
students: Student[];
count: number;
offset: number;
limit: number;
}

以及返回Observable<StudentsData>的服务

getStudentsData(orderBy?: string, orderDirection = 'asc'): Observable<StudentsData> {
return this.http.get<StudentsData>('/api/students', {params})
}

是否可以使用Observable<StudentsData>并创建Observable<Stundet[]>

您正在寻找rxjs运算符映射:

this.getStudentsData(....).pipe( map(studentsData => studentsData.students) )

Pluck

当你只想提取一部分数据时,Pluck会更简洁一点:

this.getStudentsData(/* Your params... */)
.pipe(pluck('students'))

最新更新