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
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.