找出支付重试里的 bug

来自 HTTP 语义
Node 24 进阶 4分钟 找出 1处问题

找出这段生成式支付重试代码中的语义缺陷。

JavaScript
async function createPayment(payment) {
  for (let attempt = 0; attempt < 3; attempt += 1) {
    try {
      return await fetch("https://payments.example/charges", {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify(payment),
      });
    } catch (error) {
      if (attempt === 2) throw error;
    }
  }
}
在试验场中打开
报告错误