Ich versuche, eine asynchrone Schleife async.each
über ein Array von Objekten auszuführen. Bei jedem Objekt im Array versuche ich zwei Funktionen nacheinander auszuführen (promises
). Das Problem ist, dass async.each
nur für das erste Schlüsselwort ausgeführt wird.async.each nicht iterieren bei Verwendung von Versprechen
Im folgenden Code lädt getKeywords
einige Schlüsselwörter aus einer Datei und gibt dann ein Array von Schlüsselwortobjekten zurück. Jedes Schlüsselwortobjekt wird in searchKeyword
eingefügt, das eine Suche durchführt. Das Suchergebnis wird dann unter Verwendung von InsertSearchResults
in eine Datenbank eingegeben.
Meiner Meinung nach sollte jedes Schlüsselwort parallel verarbeitet werden und die Such- und Einfügefunktionen sind verknüpft.
getKeywords(keys).then(function(keywords) {
async.each(keywords, function(keywordObject, callback) {
searchKeyword(keywordObject).then(function(searchResults) {
return insertSearchResults(searchResults, db, collections);
}).then(function(result) {
console.log("here");
callback();
})
})
})
können Sie versuchen, den optionalen Callback aufzurufen, der 'err' erfasst? –