我知道我无法很好地在标题中定义问题,但请听我说出来。
这就是我想要做的。我有材料清单。每种材料都有一个总数量字段。用户可以创建订单。订单包含物料类型和在该订单中购买的物料数量。 在数据库中添加新订单后,相应物料的总量将根据新订单增加。
addOrder(order: Order) {
const sub = this.materialsCollection
.doc(order.material.name)
.get()
.subscribe(material => {
console.log('material', material.data());
const materialData = material.data();
const updatedQuantity = materialData.quantity + order.quantity;
this.materialsCollection.doc(materialData.name).update({
quantity: updatedQuantity
});
order.date = new Date().toLocaleString();
this.ordersCollection.doc(this.OrderID(order)).set({...order
});
sub.unsubscribe();
});
}
问题是当我快速连续添加订单时,物料的总量增加了两倍,而第二个却没有创建。
如果我添加两个数量为10的芒果订单,则芒果的总数量为20,但仅创建了一个订单,而不是两个。
只有在我快速添加订单时才会发生这种情况。