У меня есть этот сервис, который извлекает все из базы данных и этой модели:
export interface ServerPartner {
uid: string;
name: string;
weight: number;
logo?: string;
active?: boolean;
}
export class Partner {
uid: string;
name: string;
weight: number;
logo?: string;
active?: boolean;
constructor(serverPartner: ServerPartner) {
Object.assign(this, serverPartner);
}
}
getAll$(): Observable<Partner[]> {
return this.afs.collection<Partner>('partners')
.valueChanges()
.pipe(
map((sPartners: ServerPartner[]) => sPartners
.map(sPartner => new Partner(sPartner))
.sort((a: Partner, b: Partner) => a.name > b.name ? 1 : -1)
)
);
}
getAll(): Promise<Partner[]> {
return this.getAll$()
.pipe(take(1))
.toPromise();
}
В моем компоненте я вызываю функцию getAll()
следующим образом:
partners: Partner[];
ngOnInit() {
this.partners = this.partnerService.getAll();
}
, но я получаюследующая ошибка:
Type 'Promise<Partner[]>' is missing the following properties from type 'Partner[]': length, pop, push, concat, and 26 more.ts(2740)
Как преобразовать массив обещаний в простой массив?