Javascript 承诺<;员工>;[]不可分配给Employee[]类型的参数

Javascript 承诺<;员工>;[]不可分配给Employee[]类型的参数,javascript,typescript,firebase,async-await,google-cloud-firestore,Javascript,Typescript,Firebase,Async Await,Google Cloud Firestore,我试图从Firestore数据库中加载我的员工集合,对于每个员工,我想加载一个“Workday”,它是“Employees”子集合的文档。这是我的代码: loadEmployees() { return new Promise<Employee[]>(resolve => { this.db.collection('Employees').snapshotChanges().pipe( map(changes => chan

我试图从Firestore数据库中加载我的员工集合,对于每个员工,我想加载一个“Workday”,它是“Employees”子集合的文档。这是我的代码:

loadEmployees() {
    return new Promise<Employee[]>(resolve => {
        this.db.collection('Employees').snapshotChanges().pipe(
            map(changes => changes.map(async a => {
                const employee = a.payload.doc.data() as Employee;
                employee.id = a.payload.doc.id;
                employee.workday = await this.loadWorkday(employee);    // <-- returns a Promise<Workday>

                return employee;
            }))
        ).subscribe(
            employees => {
                resolve(employees); // Error: <--- Promise<Employee>[]' is not assignable to parameter of type 'Employee[]
            }
        );
    });
}
loadEmployees(){
返回新承诺(解决=>{
此.db.collection('Employees').snapshotChanges()管道(
映射(changes=>changes.map(异步a=>{
const employee=a.payload.doc.data()作为员工;
employee.id=a.payload.doc.id;
employee.workday=等待此。loadWorkday(employee);//{
解析(员工);//错误:使用
Promise.resolve()
将常量/变量
employees
提升为
Promise

使用
subscribe()
之前的
reduce()
将您的
员工
整理成一个
员工
数组

如果每个
员工
都作为
承诺
返回,则在
reduce()之前使用
flatMap()
Rx.observeable.from()
打开该承诺