Derzeit erstelle ich einen benutzerdefinierten Web-Crawler und die einfachste Methode zur Implementierung von parallelen Funktionen ist die Verwendung des npm-Pakets „async“.
Während des Programmierens stieß ich auf das Problem, dass das Programm nicht richtig funktionierte, aber das Terminal keine Fehler anzeigte.
Also habe ich die Warteschlangenfunktion außerhalb von async getestet und sie hat wie erwartet einen Fehler angezeigt. Was war hier los?
Es stellte sich heraus, dass async.queue standardmäßig Fehler abfängt und dass man sie explizit behandeln muss. Dies kann durch Hinzufügen eines Fehler-Callbacks zur Warteschlange erfolgen:
var q = async.queue(function(task, callback) { console.log('hello ' + task.name); callback(); }, 2); q.error(function(err, task) { console.error('task experienced an error'); });
Derzeit ist dies nicht sehr hilfreich, aber natürlich können Sie den Fehler leicht anzeigen:
q.error(function(err, task) { console.error(`Async error: ${err}`); });
Da haben wir es:
Async error: ReferenceError: xxx is not defined
(Photo by LOGAN WEAVER | @LGNWVR on Unsplash)