Предполагая, что мне нужно получить все предметы из заказа предметов.Loop через angularfire2 list
- мне нужно, чтобы получить ключи элемента из заказа
- перебирать каждый ключ элемента и подписаться на каждую
.database.object
, чтобы получить подробную информацию о позициях.
let myItems = [];
let orderItems = this.af.database.list('/order_items');
this.orderItems.subscribe((itemKeys) => {
itemKeys.forEach((itemKey) => {
let item = this.af.database.object('/items/'itemKey.$value);
item.subscribe((itemData) => {
myItems.push(itemData);
});
});
});
Это может быть проблематичным, так как orderItems
подписка еще не завершена, и forEach
выполняется. Конечно, я могу проверить список для дублирования позже, но я уверен, что есть лучший способ.
Мой вопрос - Есть ли лучший способ сделать это?
Не уверен, что делает 'preserveSnapshot', но проблема остается - и это не имеет никакого отношения к этому. Я думаю, что эта проблема возникает из-за того, что наблюдаемый поток не очень хорош. – TheUnreal