Trung BìnhJavaScript iconJavaScript

Viết hàm retry với exponential backoff?

Exponential backoff retry một async call failing với delay tăng dần (1s, 2s, 4s...).

js
async function retry(fn, maxRetries = 3, delay = 1000) {
  for (let i = 0; i < maxRetries; i++) {
    try { return await fn(); }
    catch (err) {
      if (i === maxRetries - 1) throw err;
      await new Promise(r => setTimeout(r, delay * 2 ** i));
    }
  }
}

Dùng cho API calls không ổn định.

Delay tăng: 1s, 2s, 4s.

Xem toàn bộ JavaScript cùng filter theo level & chủ đề con.

Mở danh sách JavaScript