Framework
Version
Debouncer API Referenz
Throttler API Referenz
Rate Limiter API Referenz
Queue API Referenz
Batcher API Referenz

asyncBatch

Funktion: asyncBatch()

ts
function asyncBatch<TValue>(fn, options): (item) => void
function asyncBatch<TValue>(fn, options): (item) => void

Definiert in: async-batcher.ts:460

Erstellt einen asynchronen Batcher, der Elemente in Batches verarbeitet

Im Gegensatz zum synchronen Batcher verarbeitet diese asynchrone Version

  • Verarbeitet Promises und gibt Ergebnisse von Stapelausführungen zurück
  • Bietet Fehlerbehandlung mit konfigurierbarem Fehlerverhalten
  • Zählt Erfolgs-, Fehler- und Abschlusszählungen separat
  • Hat eine Zustandsverfolgung, wenn Stapel ausgeführt werden

Fehlerbehandlung

  • Wenn ein onError Handler bereitgestellt wird, wird dieser mit dem Fehler, dem Batch fehlgeschlagener Elemente und der Batcher-Instanz aufgerufen
  • Wenn throwOnError auf true gesetzt ist (Standardwert, wenn kein onError-Handler bereitgestellt wird), wird der Fehler ausgelöst.
  • Wenn throwOnError auf false gesetzt ist (Standardwert, wenn ein onError-Handler bereitgestellt wird), wird der Fehler "verschluckt".
  • Sowohl onError als auch throwOnError können zusammen verwendet werden – der Handler wird aufgerufen, bevor ein Fehler ausgelöst wird.
  • Der Fehlerzustand kann über die zugrunde liegende AsyncBatcher-Instanz überprüft werden

Zustandsverwaltung

  • Verwendet TanStack Store für reaktives Zustandsmanagement
  • Verwenden Sie initialState, um initiale Zustandswerte bei der Erstellung des asynchronen Batchers bereitzustellen
  • Verwenden Sie den onSuccess Callback, um auf erfolgreiche Batch-Ausführung zu reagieren und benutzerdefinierte Logik zu implementieren
  • Verwenden Sie den onError Callback, um auf Batch-Ausführungsfehler zu reagieren und benutzerdefinierte Fehlerbehandlung zu implementieren
  • Verwenden Sie den onSettled Callback, um auf den Abschluss der Batch-Ausführung (Erfolg oder Fehler) zu reagieren und benutzerdefinierte Logik zu implementieren
  • Verwenden Sie den onExecute-Callback, um auf Batch-Ausführungen zu reagieren und benutzerdefinierte Logik zu implementieren
  • Verwenden Sie den onItemsChange-Callback, um auf das Hinzufügen oder Entfernen von Elementen aus dem Batcher zu reagieren
  • Der Zustand umfasst die Gesamtzahl der verarbeiteten Elemente, Erfolgs-/Fehlerzähler und den Ausführungsstatus
  • Der Zustand kann über die store.state Eigenschaft der zugrunde liegenden AsyncBatcher-Instanz aufgerufen werden
  • Bei Verwendung von Framework-Adaptern (React/Solid) wird der Zustand aus der `state`-Eigenschaft des Hooks abgerufen

Typparameter

TValue

Parameter

fn

(items) => Promise<any>

optionen

AsyncBatcherOptions<TValue>

Gibt zurück

Funktion

Fügt ein Element zum asynchronen Batcher hinzu. Wenn die Batch-Größe erreicht ist, ein Timeout auftritt oder shouldProcess true zurückgibt, wird der Batch verarbeitet

Parameter

item

TValue

Gibt zurück

void

Beispiel

ts
const batchItems = asyncBatch<number>(
  async (items) => {
    const result = await processApiCall(items);
    console.log('Processing:', items);
    return result;
  },
  {
    maxSize: 3,
    wait: 1000,
    onSuccess: (result) => console.log('Batch succeeded:', result),
    onError: (error) => console.error('Batch failed:', error)
  }
);

batchItems(1);
batchItems(2);
batchItems(3); // Triggers batch processing
const batchItems = asyncBatch<number>(
  async (items) => {
    const result = await processApiCall(items);
    console.log('Processing:', items);
    return result;
  },
  {
    maxSize: 3,
    wait: 1000,
    onSuccess: (result) => console.log('Batch succeeded:', result),
    onError: (error) => console.error('Batch failed:', error)
  }
);

batchItems(1);
batchItems(2);
batchItems(3); // Triggers batch processing
Unsere Partner
Code Rabbit
Unkey
Bytes abonnieren

Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.

Bytes

Kein Spam. Jederzeit kündbar.

Bytes abonnieren

Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.

Bytes

Kein Spam. Jederzeit kündbar.