找出订单处理器里的 bug

来自 陌生代码阅读
Node 24 进阶 7分钟 找出 3处问题

找出生成式解释可能漏掉的信任、数据传递和副作用顺序问题。

JavaScript
let lastTenant = "";

export function handleOrder(request, dependencies) {
  const input = JSON.parse(request.body);
  lastTenant = request.headers["x-tenant"];
  const totalCents = input.items.reduce(
    (sum, item) => sum + item.priceCents * item.quantity,
    0,
  );
  dependencies.payments.charge(lastTenant, totalCents);
  dependencies.events.publish({ type: "OrderPaid", id: input.id });
  dependencies.orders.save({ ...input, tenant: lastTenant, totalCents });
  return { status: 201, id: input.id };
}
在试验场中打开
报告错误