这样地:
this.adminService.companies$
.pipe(
takeUntil(this.unsubscriber),
map((data: CompanyCard[]) => data.map(company => '_seconds' in company.created
? ({ ...company, created: new Date(company.created._seconds * 1000) })
: company
)),
switchMap((data: CompanyCard[]) => forkJoin(data.map(company => company.owner
? this.userService.getUser(company.owner).pipe(
take(1),
takeUntil(this.unsubscriber),
map((user: User) => ({ ...company, owner: user.email }))
)
: of(company)
)))
)
.subscribe(companies => {
this.companies = companies;
});