オブジェクトの配列に対して非同期ループasync.each
を実行しようとしています。 配列内の各オブジェクトで、(promises
を使用して)2つの関数を順番に実行しようとしています。問題は、async.each
が最初のキーワードに対してのみ実行されることです。async.eachは約束を使用すると反復しません
次のコードでは、getKeywords
はファイルからいくつかのキーワードをロードしてから、キーワードオブジェクトの配列を返します。各キーワードオブジェクトは、検索を行うsearchKeyword
に入れられます。検索結果はInsertSearchResults
を使用してデータベースに格納されます。
私の考えでは、各キーワードを並行して処理し、検索機能と挿入機能をリンクする必要があります。
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();
})
})
})
「エラー」をキャプチャするオプションのコールバックを呼び出せますか? –