0 Tage Serie
javascript / expert
Snippet

Strategische Fehleraggregation bei der Batch-Verarbeitung

AggregateError bietet eine native Möglichkeit, mehrere Fehler in einem einzigen Objekt zusammenzufassen. In komplexen Node.js-Microservices erlaubt dies, alle Teilaufgaben einer Batch-Operation zu versuchen und jeden Fehler gesammelt zu melden, statt beim ersten Fehler abzubrechen.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
async function processBatch(tasks) {
const results = await Promise.allSettled(tasks.map(t => t()));
const failures = results
.filter(r => r.status === 'rejected')
.map(r => r.reason);
if (failures.length > 0) {
throw new AggregateError(failures, 'Batch processing encountered errors');
}
}
try {
await processBatch(myTasks);
} catch (e) {
if (e instanceof AggregateError) {
for (const error of e.errors) console.error(error.message);
}
}
nodejs
Erklärung
1
throw new AggregateError(failures, '...');
Wirft einen einzelnen Fehler, der ein Array mehrerer zugrunde liegender Fehler enthält.
2
for (const error of e.errors)
Iteriert durch alle einzelnen Fehler, die im Aggregat erfasst wurden.