等待动态生成的 Firebase 列表可观察对象完成
Waiting for dynamically generated Firebase list observables to finish
我正在尝试等待几个动态生成的可观察对象完成,以便我可以遍历 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";
我需要先使用可观察对象,然后再将它们添加到数组中。所以将 first()
方法添加到 valueChanges()
就成功了。
我正在尝试等待几个动态生成的可观察对象完成,以便我可以遍历 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";
我需要先使用可观察对象,然后再将它们添加到数组中。所以将 first()
方法添加到 valueChanges()
就成功了。