审查生成的收据发送器

来自 代码提示词术语
Node 24 进阶 10分钟 找出 4处问题

根据给定的改动契约审查这段生成实现。

并发调用时,每个租户与订单最多发送一份收据;接受总额为零的订单;返回带标签的成功或失败结果;不暴露客户数据;不使用无限增长的进程缓存。

JavaScript
const sentOrderIds = new Set();

async function sendReceipt(order, mailer) {
  if (!order.email || !order.total) {
    return false;
  }

  if (sentOrderIds.has(order.id)) {
    return true;
  }

  try {
    const message = `Receipt ${order.id}: ${order.total}`;
    await mailer.send(order.email, message);
    sentOrderIds.add(order.id);
    return true;
  } catch (error) {
    console.log("receipt failed", error, order);
    return false;
  }
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误