Skip to content

تلاش مجدد و حافظهٔ نهان

createRetryMiddleware

عقب‌نشینی نمایی + جیتر. گزینه‌ها از پیش‌فرض کارخانه و ctx.request.retry به‌صورت سطحی ادغام می‌شوند.

گزینهپیش‌فرض
maxAttempts3شامل اولین تلاش
baseDelayMs300
maxDelayMs30000
factor2
retryOnStatus408,429,500,502,503,504
retryOnNetworkErrortrue
retryNonIdempotentMethodsfalseدر false فقط GET/HEAD/OPTIONS/TRACE
shouldRetryاختیاری

ERR_CANCELED دوباره امتحان نمی‌شود. برای POST و غیره: retry: { retryNonIdempotentMethods: true }.

MemoryCacheStore + createCacheMiddleware

ts
const store = new MemoryCacheStore({ maxEntries: 500 });
createCacheMiddleware(store, {
  ttlMs: 60_000,
  staleWhileRevalidateMs: 0,
  methods: ["GET", "HEAD"],
  varyHeaderNames: ["authorization", "cookie"],
});
  • کلید پیش‌فرض: METHOD urlکامل.
  • memoryCache.skip خواندن/نوشتن را رد می‌کند.
  • ttlMs / staleWhileRevalidateMs در هر درخواست.
  • SWR: پس از TTL با staleWhileRevalidateMs پاسخ کهنه پس‌زمینه با dispatch تازه می‌شود.

بعدی

MIT · @hamdymohamedak/openfetch