我想计算购物篮的总量。我有 shoppingcartitem 和 product 表。我有波纹管代码
cartTotals(qty = 0, total = 0) {
return this.af.database.list('ShoppingCartItem')
.map(carts => {
carts.map(cart => {
this.af.database.object(`Product/${cart.productId}`)
.subscribe(d => {
cart.product = d;
});
return cart;
});
carts.forEach(cartItem => {
qty += cartItem.quantity;
total += cartItem.quantity * cartItem.product.price;
// console.log(cartItem);
});
return {qty, total};
});
}
返回 QTY 值有效,但 total 值返回不确定的
这个plunker
让我知道这是否有效,因为我没有整个源代码和API数据。
cartTotals(qty = 0, total = 0) {
return this.af.database.list('ShoppingCartItem')
.map(carts => carts.map(cart => cart.product = this.findProductFromCartId(cart.productId)))
.map(carts => carts.map(cartItem => {
cartItem.qty = cartItem.quantity + qty;
cartItem.total = (cartItem.quantity * cartItem.product.price) + total;
return cartItem;
});
}
findProductFromCartId(id) {
return this.af.database.object(`Product/${id}`)
.flatMap(product => Observable.combineLatest(product));//add this onlyIF its returned FirebaseObservable Object
}