Javascript 承诺<;员工>;[]不可分配给Employee[]类型的参数
我试图从Firestore数据库中加载我的员工集合,对于每个员工,我想加载一个“Workday”,它是“Employees”子集合的文档。这是我的代码: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
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()
打开该承诺