Funktion: asyncBatch()
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
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