收藏
回答

创建订单,减库存时使用循环+事务,当循环数组length达到50就直接崩了,如何破解啊?

for (let i = 0; i < cartInfoAry.length; i++) {
  const item = cartInfoAry[i];
  // 删除购物车数据
  const deleteCartRes = await transaction.collection(cartCollectionName).doc(item.cartId).remove();
  if (deleteCartRes.stats.removed > 0) deleteCartArr.push(item.cartId);
  // 减库存和增销量
  const minusStockRes = await transaction.collection(levelCollectionName).doc(item.levelId).update({
    data: {
      stock: _.inc(-item.count),
      saleVolume: _.inc(item.count)
    }
  })
  if (minusStockRes.stats.updated > 0) minusStockArr.push(item.levelId);
}



回答关注问题邀请回答
收藏

2 个回答

  • less
    less
    2022-01-04

    我今天看到,淘宝购物车,也做了限制,最多 50 件商品,一起下单。

    2022-01-04
    有用
    回复
  • Mr.Zhao
    Mr.Zhao
    2021-11-04

    云函数超时时间默认3s,改成10s

    2021-11-04
    有用
    回复 3
    • 花之都-昆明直发平台
      花之都-昆明直发平台
      发表于移动端
      2021-11-04
      这是支付流程,让用户等好几秒也不太友好吧,大佬有没有更好的啊,几十种商品在创建订单的同时去减库存,除了循环事务,还能怎么做啊
      2021-11-04
      回复
    • Mr.Zhao
      Mr.Zhao
      2021-11-04回复花之都-昆明直发平台
      不友好跟不能用,你选哪个?执行的多,不需要时间的吗?
      2021-11-04
      回复
    • 花之都-昆明直发平台
      花之都-昆明直发平台
      发表于移动端
      2021-11-04回复Mr.Zhao
      😌 ,那好吧,等着官方什么时候能支持事务的where操作可能就会好多了。。。感谢大佬的讲解
      2021-11-04
      回复
登录 后发表内容