我正在尝试等待几个动态生成的可观察对象完成,以便可以迭代Firebase列表。我已经尝试过forkJoin和zip,但是最后一行没有记录任何内容。
this.db.list<ChatByUser>(`chats_by_user/${this.userService.user.id}`).valueChanges().first().subscribe(chatsByUser => {
const obsArray: Observable<Chat>[] = [];
chatsByUser.forEach(chatByUser => {
obsArray.push(this.db.object<Chat>(`chats/${chatByUser.chatId}`).valueChanges());
});
Observable.zip(obsArray).first().subscribe(chats => console.log(chats));
});
我不知道它是否与它有关,但是我正在将rxjs 6与rxjs-compat一起使用,并像这样导入运算符:
import { Observable } from "rxjs/Observable";
import "rxjs/add/observable/zip";
答案 0 :(得分:0)
在将可观察对象添加到数组之前,我需要消耗它们。因此,将first()
方法添加到valueChanges()
可以达到目的。