使用NodeJS购物

时间:2017-08-29 22:47:49

标签: javascript node.js

我正努力让用户可以从商店购买商品,我想这样做,这样他们可以购买他们喜欢的数量,购买四件商品,或购买六件商品!

现在我正在努力寻找用户的购物车价值多少,我确实编写了以下代码,但我正在使用一个循环,因为代码之后才能找到购物车的价值在循环运行时执行,我猜这是问题(?)。我想我可以使用async循环,但我宁愿不去那条路线,有没有更好的策略来找到购物车的价值?如果是这样请解释!

这是我尝试查看用户是否有足够资金购买商品的当前代码,

    var shopList = m.list;

    var price = 0;
    for(x=0;x<shopList.length;x++){
        price=price + findValue(shopList[x].itemid);
    }

    if(price < getBalance(user)){
        //USER DOES HAVE ENOUGH BALANCE
    }else{
        //USER DOES NOT HAVE ENOUGH BALANCE
    }

编辑:我很想知道是否有更好的方法来找到购物车的价值。

2 个答案:

答案 0 :(得分:0)

您可以考虑向“m”对象添加一个表示购物车总价值的属性,并且只要将某个商品添加到列表中,该属性就会增加。这样可以简化应用程序的总量。发展的一条黄金法则是“让常见案例更快”

答案 1 :(得分:0)

如果findValue()async,那么您没有选择不通过async构造处理它。您可以重构findValue()以返回Promise,然后将for循环更改为

var promises = shopList.map(function(item) {
  return findValue(item.itemid);
})

Promise.all(promises).then(function(values){
    var price = 0;
    for (x=0 ; x < values.length ; x++){
        price = price + values[x];
    }

    if (price < getBalance(user)){
        //USER DOES HAVE ENOUGH BALANCE
    } else {
        //USER DOES NOT HAVE ENOUGH BALANCE
    }
});